java八大基本类型介绍
//今天说一下java的八大基本类型:
// 数字类型:byte(8位)、short(16位)、int(32位)、long(64位)
//浮点类型:float(32位)、double(64位)
//字符类型:chart(16位)Unicode字符
//boolean类型:只有2个值true和false。个人理解为是1位的,因为是有0和1表示的。
//八大基本类型都有最大值和最小值。今天来看下他们分别代表的最大值和最小值
System.out.println("byte最小值:"+Byte.MIN_VALUE);
System.out.println("byte最大值:"+Byte.MAX_VALUE);
//通过代码输出得知byte的取值在-128~127之间。这里要问为什么,为什么是-128~127的区间。
//我想这个问题要完全明白只能找计算机的发明者们来解释了。以下的内容都是个人理解,有错误的地方还请大家在回复中指出
//简单知道,计算机底层是二进制计算的。Byte是8位的,我们反推一下-128和127的二进制是:1111111(127)、-00000001(-128)
//127的二进制加1的结果是:1111111+1=00000001
//在讲二进制转换为十进制的过程:1111111 使用java.lang.Math的pow方法求2的次方十进制数相加
System.out.println( Math.pow(2,0)+"+"+Math.pow(2,1)+"+"+Math.pow(2,2)
+"+"+Math.pow(2,3)+"+"+Math.pow(2,4)+"+"+Math.pow(2,5)+"+"+Math.pow(2,6)+"=127.0");
//结果为:1.0+2.0+4.0+8.0+16.0+32.0+64.0=127.0
//所以00000001的值就是Math.pow(2,7)也就是2的7次方。这里有个问题就是Byte是8位的负数是-128可以理解了,但正数为啥是127那。
//也就是说Byte正数的实际占位是7位二进制的1111111。是不是考虑到有0的存在,0也是正式的一位,而负数是由-1开的的。这个只是猜测。
//关于为啥8位的正数只是占满二进制的7个位置,就不纠结了。只要知道8位区间为啥是-128~127就可以了。
//所以对于数字类型类推:Byte(8位)的区间是-2的7次方(-2^7)到2的7次方减去1(2^7-1)
//short(16位)的(-32768~32767)区间(-2^15)到(2^15-1)
//int(32位)的(-2147483648~2147483647)区间(-2^31)到(2^31-1)
//long(64位)的(-9223372036854775808~9223372036854775807)区间(-2^31)到(2^31-1)
//上面说的都是数字类型,下面说下两种浮点类型float和double 浮点型是遵守IEEE 754标准。提到标准一定是有一群计算机界牛逼到牛逼
//的人在一起制定。百度简单看来了下完全看不懂,涉及到高等数学。
//通过java提供的方法
System.out.println("Float最大值:"+Float.MAX_VALUE+";Float最小值:"+Float.MIN_VALUE);
//Float最大值:3.4028235E38;Float最小值:1.4E-45
System.out.println("Double最大值:"+Double.MAX_VALUE+";Double最小值:"+Double.MIN_VALUE);
//Double最大值:1.7976931348623157E308;Double最小值:4.9E-324
//我们可以看到在浮点型的最大最小值中有个E,这个E代表的含义是:1.4E-45就是1.4*10^-45;1.4E10就是1.4*10^10。
//直白点说就是1.4E-3就是0.0014;1.4E3就是1400。E后边的是负数就是向小数点后移多少位;E后边的事正数就是向小数点前移多少位
//这么说下来,boolean类型就是1位的了,只是0和1的值,0代表false,1代表true。
//char类型是16位的Unicode字符
System.out.println("Char最大值:"+(int)Character.MAX_VALUE+";Char最小值:"+(int)Character.MIN_VALUE);
//Char最大值:65535(\uffff);Char最小值:0(\u0000);
//Unicode是一张编码表,将全世界所有用到的字符类型都编入到Unicode表中,然后根据\u0000的编码位置查找对应的字符。
//具体的请百度Unicode编码
java八大基本类型介绍的更多相关文章
- 一文详解 Java 的八大基本类型
自从Java发布以来,基本数据类型就是Java语言中重要的一部分,本文就来详细介绍下每种基本类型的具体使用方法和限制. 作者 | Jeremy Grifski 译者 | 弯月,责编 | 郭芮 出品 | ...
- Android java传递string类型数据给C
本文接着实现<Android java传递int类型数据给C>的还未实现的方法: public native String sayHelloInC(String s); 先贴一个工具方法, ...
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Java泛型类与类型擦除
转载自:http://blog.csdn.net/lonelyroamer/article/details/7868820 一.Java泛型的实现方法:类型擦除 前面已经说了,Java的泛型是伪泛型. ...
- 深度分析 Java 的枚举类型:枚举的线程安全性及序列化问题(转)
写在前面: Java SE5 提供了一种新的类型 Java的枚举类型,关键字 enum 可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能 ...
- 深度分析Java的枚举类型—-枚举的线程安全性及序列化问题
原文:深度分析Java的枚举类型--枚举的线程安全性及序列化问题 枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和clas ...
- Java 4- Java 变量类型
Java 变量类型 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ...
- [ JAVA编程 ] double类型计算精度丢失问题及解决方法
前言 如果你在测试金融相关产品,请务必覆盖交易金额为小数的场景.特别是使用Java语言的初级开发. Java基本实例 先来看Java中double类型数值加.减.乘.除计算式实例: public cl ...
- Java enum枚举类型
java的枚举类型详解: 简单示例: public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 复杂示例(带自定义构造方法与类型) public enum En ...
随机推荐
- cocos2d-x设计模式发掘之一:单例模式
作者: firedragonpzy 原地址:http://www.firedragonpzy.com.cn/index.php/archives/1781 本系列文章我将和大家一起来发掘coc ...
- jetty 通过配置文件嵌入式启动web服务
定义 jetty.xml 启动文件 <?xml version="1.0"?><!DOCTYPE Configure PUBLIC "-//Jetty/ ...
- Springboot 1.5.x版本上读取自定义配置文件问题
原来的解决方案: 现在1.5.x以后取消了location地址 1.5以后解决方案:
- 移动端H5页面自适应手机屏幕宽度
1.由于本人使用的是sublime.text,使用rem就可以达到效果. 点击菜单中的preferences下的browse packages,选择cssrem-master,添加或者编写cssrem ...
- Martin Fowler’s Active Record design pattern.
P of EAA: Active Record https://www.martinfowler.com/eaaCatalog/activeRecord.html Active Record An o ...
- BaseServlet 介绍
1. BaseServlet 的作用 让一个Servlet可以处理多种不同的请求,不同的请求调用Servlet的不同方法. 2. 实现原理 客户端发送请求时, 必须多给出一个参数, 用来说明要调用的方 ...
- TCustomControl绘制自己和图形子控件共四步,TWinControl关键属性方法速记
TCustomControl = class(TWinControl) private FCanvas: TCanvas; procedure WMPaint(var Message: TWMPain ...
- 常用代码块:创建httpclient
HttpGet httpGet = new HttpGet(url); SSLContext sslcontext = SSLContexts.custom() .loadTrustMaterial( ...
- 虚拟研讨会:如何设计好的RESTful API(转)
原文:虚拟研讨会:如何设计好的RESTful API? REST架构风格最初由Roy T. Fielding(HTTP/1.1协议专家组负责人)在其2000年的博士学位论文中提出.HTTP就是该架构风 ...
- oracle 函数 截取 连接 替换 判断
一个处理不规范日期的函数,廖记一下吧,以免再忘. --注意全角半角 CREATE OR REPLACE function f_str2form( date_string in varchar2 ) r ...