Java语言中有8种基本数据类型,习惯上可以分为以下四大类:
整数类型:byte、short、int、long
浮点类型:float、double
逻辑类型:boolean
字符类型:char
整数类型
byte:一个字节内存,占8位,最大存储数据量是255,存放的数据范围是-128~127之间。
变量:用关键字byte来声明 byte x=-12;
常量:Java中不存在byte型常量的表示方法,但可以把一定范围内的int型常量赋值给byte型变量。
short:分配两个字节内存,占16位,最大数据存储量是65536,数据范围是-32768~32767之间。
变量:用关键字short来声明 short x=12;
常量:Java中不存在short型常量的表示方法,但可以把一定范围内的int型常量赋值给short型变量。
int:分配四个字节内存,占32位,最大数据存储容量是2^32-1,数据范围是:-2^31~2^31-1。
变量:使用关键字int来声明,声明时也可以赋值给初值 int x=12,y;
常量:6000(十进制)、077(八进制)、0x3ABC(十六进制)
long:分配8个字节内存,占64位,最大数据存储容量是2^64-1,数据范围是:-2^63~2^63-1。
变量:使用关键字long来声明 long width=12L,height=2005L;
常量:long型常量用后缀L来表示
浮点类型
float:分配4个字节内存,占32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
变量:使用关键字float来声明 float x=22.6f;
常量:453.5439f,231.0f(小数点表示法),2e40f(2乘10的40次方,指数表示法)
double:分配8个字节内存,占64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
变量:使用关键字double来声明 double x=22.6d,y=1e12,z=23.12;
常量:453.5439d,231.0(小数点表示法),1e-90(1乘10的-90次方,指数表示法)
逻辑类型
boolean:只有true和false两个取值。
变量:使用关键字boolean来声明,声明时也可以赋值给初值 boolean on=true,off=false,x;
常量:true,false
字符类型
char:16位,存储Unicode码,用单引号赋值。
变量:使用关键字char来声明 char c='A',home='家';
常量:‘A’,'b','好','\t'
有些字符不能通过键盘输入到字符串或者程序中,这时就需要用到转义字符常量
转义字符常量:\n(换行),\b (退格), \t (水平制表),\' (单引号), \" (双引号) ,\\(反斜线)
Java中定义的简单类型、占用二进制位数及对应的封装器类。

数值类型的基本类型的取值范围,它们的值都已经以常量的形式定义在对应的包装类中了
byte :Byte.SIZE最小值:Byte.MIN_VALUE最大值:Byte.MAX_VALUE
short:Short.SIZE最小值:Short.MIN_VALUE最大值:Short.MAX_VALUE
char:Character.SIZE最小值:Character.MIN_VALUE最大值:Character.MAX_VALUE
double:Double.SIZE最小值:Double.MIN_VALUE最大值:Double.MAX_VALUE
注意:float、double两种类型的最小值与Float.MIN_VALUE、 Double.MIN_VALUE的值并不相同,实际上Float.MIN_VALUE和Double.MIN_VALUE分别指的是 float和double类型所能表示的最小正数。也就是说存在这样一种情况,0到±Float.MIN_VALUE之间的值float类型无法表示,0 到±Double.MIN_VALUE之间的值double类型无法表示。这并没有什么好奇怪的,因为这些范围内的数值超出了它们的精度范围。
Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少倍。比如3.14E3就是3.14×1000=3140,3.14E-3就是3.14/1000=0.00314。
Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java5.0(1.5)开始,JAVA虚拟机(Java Virtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类,但这并不意味着你可以通过基本类型调用它们的包装类才具有的方法。另外,所有基本类型(包括void)的包装类都使用了final修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法。
类型转换运算
将基本数据类型(这里不包括逻辑类型)按精度从低到高排列:
byte short char int long float double
简单数据类型的转换分为两种:
自动转换和强制转换
1)自动转换:
当一个较“小”的数据和较“大”的数据一起运算的时候,系统将自动将较“小”的数据转换为较“大”的数据,再进行运算。在方法调用过程,如果实际参数较“小”,而函数的形参比较“大”的时候,除非有匹配的方法,否则会直接使用较“大”的形参函数进行调用。
2)强制转换:
将“大”数据转换为“小”数据时,可以使用强制类型转换,在强制类型转
换的时候必须使用下边这种语句:
int a = (int)3.14;
只是在上边这种类型转换的时候,有可能会出现精度损失。
浙公网安备 33010602011771号