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编码

原文地址:https://www.cnblogs.com/gynbk/p/9361343.html