java8种基本数据类型
刚开始学习java时候一直对java的基本数据类型和引用类型双类型表示很困惑,搜了下资源发现java界对保留基本数据类型也很是争议。最近看了篇文章讲了java为什么保留基本数据类型进行解释(提高性能),该文章作者也收到oracle发来邮件明确表示未来不会考虑移除基本数据类型。http://www.importnew.com/11915.html
一:字节与字符
计算机存储信息的最小单位,称之为位(bit),音译比特,二进制的一个“0”或一个“1”叫一位。计算机存储容量基本单位
是字节(Byte),音译为拜特,8个二进制位组成1个字节。JVM中单个字符占用的字节长度跟编码方式有关,而默认编码方式
又跟平台是一一对应的或说平台决定了默认字符编码方式所以不同虚拟机实现方式不同。
二:基本数据类型2.1 Java提供了八种基本类型:
2.1.1 int类型
int是最常用的整数类型,一个int类型的变量占用4个字节,即32位的内存空间。Int的最大表示范围为:-231~231-1,即-2147483648 ~2147483647,大约正负21个亿多些。
在使用过程中应注意的部分:
1)两个整数相除会舍弃小数部分。
2)在运算时小心溢出和丧失精度。
3)注意int、Integer、String三者互相转换。
2.1.2 long类型
在表示整数时,如果int类型的范围不够,可以使用long类型,一个long型的变量占用8个字节(即64位),最大表示范围为:-263 ~ 263-1,即 -9223372036854775808 ~ 9223372036854775807。
如果要直接表示long直接量,要在数据末尾加上L或者l。
2.1.3 double类型和float类型
前面所学习的int、long都是用于存储整数的,小数即为浮点数,包括: float(单精度)和double(双精度),double类型的精度值是float类型的两倍,因此而得名双精精,在实际的应用开发中,float应用极少,大多数场合使用double表示浮点数。
默认的浮点直接量为double型,如果需要表示float类型的直接量,需要加“f”或“F”后缀,并且2进制无法精确表示1/10所以在double运算过程中会丧失精度。
2.1.4 char类型
char字符型,但是可以表示成整型,很多人疑惑char到底占用几个字节?java采用unicode,2个字节(16位)来表示一个字符,char = "a";char = "中"; 他们分别占用一个和两个字节,这里仅仅是代表占用,因为英文仅仅使用下八位就是可表达所以占一个字节,而汉字却要使用上八位和下八位所以占两个字节,总结来说java中char占两个字节16位。
2.1.5 boolean类型
boolean类型适用于关系、逻辑运算, 表示某个条件是否成立, 只允许取值true或false,true表示条件成立, 而false表示条件不成立。
2.1.6 short类型和byte类型
这两种可以当做整型看待。
2.2 基本数据类型之间的互相转换
2.2.1 自动转换
小类型到大类型java会隐式转换:
大类型到小类型需要强制转换(可能会丧失精度或溢出)。