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;//编译成功
这几种类型都是整数类型,且都是有符号整数,有符号整数对于那个的是无符号整数,两者的区别是把二进制转换为十进制的方式不一样:
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;//成功 这个运算符内部进行强制转换了,所以这里没报错
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在实际情况中,通常都把整数定义为int或者double,这样能简化数学运算时强制类型转换操作。因为当数学表达式中都是整数时,返回类型只可能是int或者long类型。</span>
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;