JAVA 基本数据类型有boolean,byte,short,int,long,char,float,double。
1、boolean
在内存中占用一个字节(8位),默认值是false。
boolean类型 的变量取值只能是true或false。表示是或者否,一把会在逻辑语句中使用。如:
boolean flag = (1==1);
System.out.println(flag);//输出true
System.out.println(1==2);//输出false
boolean b1 = "111"; //编译出错
boolean b2 = 0 ; //编译出错
boolean b3 = true; //编译成功
boolean b4 = false;//编译成功
2、byte、short、int、long
这几种类型都是整数类型,且都是有符号整数,有符号整数对于那个的是无符号整数,两者的区别是把二进制转换为十进制的方式不一样:
a、有符号整数把二进制数的首位作为符号位,当首位是0时,对应十进制的正整数,当首位是1时,对应十进制的负整数。
对于一个字节的二进制数(byte),取值范围(-128-127)
b、无符号整数把二进制数的所有位转换为正整数。对一个字节的二进制数,取值范围是0-255。
八进制数一0开头,十六进制数以0x开头
二进制,八进制,十进制,十六进制之间的转换
1个字节的二进制数
八进制数
十六进制数
有符号十进制数
无符号十进制数
0000 0000
0000
0x00
0
0
0111 1111
0177
0x7F
127
127
1000 0000
0200
0x80
-128
128
1111 1111
0377
0xFF
-1
255
在定义变量时,一般根据所需大小来选择类型,若是-128-127范围内,选择byte就能满足,这样能 最大限度的节省空间。但是byte类型转换的时候需要显式的强制转换,如
byte month =2;
month = month+2;//编译失败
month = (byte) (month+2);//编译成功
month += 2;//成功 这个运算符内部进行强制转换了,所以这里没报错
在实际情况中,通常都把整数定义为int或者double,这样能简化数学运算时强制类型转换操作。因为当数学表达式中都是整数时,返回类型只可能是int或者long类型。
3、char
char是字符类型,JAVA语言对字符采用Unicode编码,所谓字符编码,是指用一串二进制数据来表示特定的字符,常见的有:ASCLL、ISO-8859-1、GB2312、GBK、Unicode、UTF。
4、float和double
两种浮点类型的小数:
float:占4个字节,共32位,称为单精度浮点数。一位表示符号,8为表示指数(底数为2),23位表述尾数。
double:站8个字节,共64位,称为双精度浮点数。一位表示符号,11位表示指数(底数为2),52为表示尾数。
float f = 5.0f;//定义float需要在后面在上小写f或者大写F,否则编译出错。
float f1 = 5.0F;