java数据类型
java数据类型
一、计算机存储单位
位(bit)(b):计算机存储的最小单位,指二进制中的一个位数,“0”或者“1”。
字节(Byte)(B):计算机信息技术用于计量存储容量一种计量单位。
- 电脑64位和32位指处理器一次可以运行64/32bit数据。(Windows32位操作系统最大识别3.25-3.75G,64bit最大内存128G)
二、基本数据类型
(1)基本数据类型
四类八种:
-
整数类型 :byte占1个字节:-128-127
short占2个字节:-32768-32767
int占4个字节:-2147483648-2147483647(-231-231-1)(整数类型默认int型)
long占8个字节:-9223372036854775808-9223372036854775807(-263-263-1)(声明long型常量须后加l或者L)
-
浮点类型:float占4个字节 -231-231-1(声明float型常量须后加l或者L)
double占8个字节 -263-263-1(浮点类型默认double型)
-
字符型: char占2个字节 0-2^16-1
-
布尔型: boolean占1位其值只有true和false两个
(2)基本数据类型转换
运算中,不同类型的数据先转化为同一类型,然后进行运算。
-
自动转换
基本数据类型之间的范围大小:
-
整型和浮点型按照范围从小到大:byte -> short -> int -> long -> float -> double
-
字符型转换为整型: char -> int
自动类型转换 (也叫隐式类型转换) ,其实就是小范围的数据类型向大范围的数据类型转换,你可以想象一下,把一杯水往一个容积大的空桶中倒进,水不会流出来。
注意:(1)自动类型转换的前提条件,必须是把数据类型范围小的数值或变量赋给数据类型范围大的变量。
(2)字符型做四则运算就是对这个字符的ASCII码进行运算,所以不用转换。
(3)自动转换也要小心数据溢出问题。
int d = 1; int c = 2147483647;// c+d 本质上依然是 int 型,这里将结果转化为 long long l = c + d; System.out.print(l);
执行结果:
-2147483648
执行结果输出的是负数,这是因为两个 int 相加得到的结果是 int,相加的结果超出了 int 的代表范围。这种情况,一般把第一个数据转换成范围大的数据类型再和其他的数据进行运算。
int d = 1; int c = 2147483647; long e = c; long l = e + d; System.out.print(l);
执行结果:
2147483648
(4)char 类型比较特殊,char 自动转换成 int、long、float 和 double,但 byte 和 short 不能自动转换为 char,而且 char 也不能自动转换为 byte 或 short。
-
-
强制转换
强制类型转换 (也叫显式类型转换) ,其实就是大范围的数据类型向小范围的数据类型转换,它需要加强制转换符来实现强制转换。
- 在强制类型转换中,如果是将浮点类型的值转换为整数,直接去掉小数点后边的所有数字;而如果是整数类型强制转换为浮点类型时,将在小数点后面补零。
强制转换需要注意两点:
- 把一个浮点数强制转换为整数时,Java 会直接截断浮点数的小数部分,造成数据丢失;
- 把一个超出数据范围的数值赋给数据类型时,会出现数据溢出的情况,造成数据的缺失。例如:int 类型的 a 的值为 249,将其强转为 byte 类型时结果会变为 -7,数据溢出。
三、引用数据类型
类,接口,数组
-