Java是强类型语言,对于每一种数据都定义了明确的具体数据结构,在内存中分配的内存空间也不同
Java数据类型主要包括基本数据类型和引用数据类型,基本数据类型就是Java中定义的各种简单数据,没有类,也就不是对象,但是Java中提倡一切皆是对象,所以Java又提供了各种基本类型的包装类,这些基本类型对应的包装类可以看为对象,定义基本类型主要是增加读写速度,基本数据类型太常用,每次都创建对象会造成很大的内存开销和时间开销
一、基本数据类型
1、整数类型
byte 、 short 、 int 、 long
(1)byte : 1个字节(8位) -128 ~ 127 ( ~ - 1)
(2)short : 2个字节(16位)( ~ - 1)
(3)int :4个字节(32位)( ~ - 1)
(4)long : 8个字节(64位)( ~ - 1)
2、浮点数类型
float、double
(1)float : 4个字节
(2)double : 8个字节
3、字符类型
char
(1)char : 2个字节(采用的是Unicode编码,每个字符在编码表里面都对应一个int整数)
4、布尔类型
boolean
(1)boolean : 1位 (只有true和false两个值)
二、数据类型转换
1、自动类型转换
由小到大是自动类型转换,Java可以帮我们自动将小的范围的值,转换到大的范围的值
byte->short(char)->int->long->float->double
2、强制类型转换
由大到小是强制类型转换,需要手动进行,例如 int i = (int) 312L;
将数据进行强制类型转换时,可能会出现精度丢失,或者比如 byte b = (byte) 128 的b = -128,因为出现了范围越界,不能表示,所以会出现循环,关系到数字的二进制表示