基本数据类型
概览
共8种:整型 byte、short、int、long
浮点型 float、double
字符型 char
布尔型 boolean
大小
1位即1 bit,一字节(byte)等于8 bit
数据类型 | 数据范围 |
byte 8位(一个字节) | -127~128(2^7) |
short 16位(两个字节) | -2^15~2^15-1 |
int 32位 | -2^16~2^16-1 |
long 64位 | -2^32~2^32-1 |
char 16位 | 0~2^16-1 |
float 32位 | 1.4E-45~3.40E+28 |
double 64位 | 4.9E-324~1.79E+308 |
boolean 1位 |
最大正数-1原因:计算机存储数字是以二进制补码的形式存储的,补码最高位为符号位(0正,1负),最大数是除符号位全取1(01111.....),加一则会溢出。
使用细节
使用long定义变量,数值后面要加L,否则会被当整型解析。
使用float定义变量,数值后要加f/F,否则会被当double型解析。
使用char定义变量,要用' ',双引号是字符串类型。同C++一样,Java会将字符作为整数对待,例如 char x=97等价于 char x='a'。
注意/补充
浮点型数据运算精度损失问题
原因:计算机以二进制存储数据,小数转为二进制时可能会产生循环,不是长度有限的二进制,而计算机存储内存有限制,不能存储无限长的二进制,故而会产生精度损失,即计算结果不准确。
解决:用BigDecimal对浮点数进行运算。
BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.5");
BigDecimal x = a.add(b); //加
BigDecimal y = a.subtract(b);//减
BigDecimal z = a.multiply(b)//乘
BigDecimal h = a.divid(b)//除
使用方法可参考其他人写的博客:https://www.cnblogs.com/zhangyinhua/p/11545305.html
超过Long的整型如何表示
使用BigInteger表示,内部是数组实现存储
包装类
概览
八种基本类型都有对应的包装类:Byte,Short,Integer,Long,Float,Double,Character,Boolean
标签:存储,Java,BigDecimal,16,二进制,32,数据类型,char,详解 From: https://blog.csdn.net/weixin_65560302/article/details/136836998