Java一共提供了8种原始的数据类型(byte、short、int、long、float、double、char、boolean),这些数据类型不是对象,而是Java中不同于类的特殊类型,这些基本类型的数据变量在声明之后就会立即在栈上被分配空间。除了这些基本类型外,其他类型都是引用类型,这类变量在声明时不会被分配内存空间,只是存储了一个内存地址。
byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
boolean:只有true和false两个取值。
char:16位,存储Unicode码,用单引号赋值。
**在Java语言中,类型转换可以分为以下几种类型:
(1) 类型自动转换
1) char类型的数据转换为高级类型(如int,long等),会转换为其对应的ASCII码。
2) byte、char、short类型的数据在参与运算时会自动转换为int型,但当使用“+=”运算时,就不会产生类型的转换。
3) 基本类型与boolean类型时不能互相转换的。
(2) 强制类型转换
需要注意的是,在进行强制类型转换时可能会损失精度。
short a = 128;
byte b = (byte)a; //a=128,b=-128**