JAVA数据类型分为:基本数据类型和引用数据类型
基本数据类型
取值范围公式:-2(位数-1) -> 2(位数-1)-1
- 整数型
类型 | 所占字节数 | 取值范围 |
---|---|---|
字节: byte | 1 byte | -27 ~ 27-1 (-128~127) |
短整型:short | 2 byte | -215 ~ 215-1 |
整型:int | 4 byte | -231 ~ 231-1 |
长整型:long | 8 byte | -263 ~ 263-1 |
- 浮点型(小数型)
类型 | 所占字节数 | 取值范围 |
---|---|---|
浮点数型:float | 4 byte | 3.402823e+38 ~ 1.401298e-45 |
双精度类型:double | 8 byte | 1.797693e+308~ 4.9000000e-324 |
- 字符型(文本型)
类型 | 所占字节数 | 取值范围 |
---|---|---|
char | 2 byte | 0 ~ 216-1 |
- 布尔型
类型 | 所占字节数 | 取值范围 |
---|---|---|
boolean | 1 byte | true (真)/ false(假) |
如果JAVA中出现了一个整数数字,那么这个数字默认为int
100; //为int类型
//如果我们想要把这个数字变成byte类型,就在值后面加一个B,表面它是byte类型
100B; //byte类型
一样道理,100S表示是short类型
100S; //short类型
double型相比float型来说存储范围更大且精度更高,所以在默认或者不声明情况下都是double型的
18.98; //默认为double型
如果想指定用float型,可以创建变量时声明或者在值后加一个大写的 ‘F’ ;
float b = 18.98; //创建变量时声明
double c = 18.98F; //c也为float类型,也因为在值后面加了'F'
命名规范
数据类型 变量名 = 值 ;
byte a = 10;
short b = 10;
int c = 100;
long d = 10;
float e = 3.14f;
double f = 3.14;
char g = '中';
boolean bool = true;//值为真
byte:
byte类型的数据是8位带符号的二进制数。最高位表示正负,0为正,1为负。
java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127
short:
short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15);
最大值是 32767(2^15 - 1);
Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
默认值是 0;
int:
int 数据类型是32位、有符号的以二进制补码表示的整数;
最小值是 -2,147,483,648 ~ 2,147,483,647(-231 ~ 231 - 1);
long:
当对整数的计算结果可能超出int数据类型的范围时使用。
其范围是 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (-263 ~ 263 - 1)。
float:
默认值是 0.0f;
浮点数不能用来表示精确的值,如货币;
double:
double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
浮点数的默认类型为double类型;
double类型同样不能表示精确的值,如货币;
默认值是 0.0d;
boolean:
boolean数据类型表示一位的信息;
只有两个取值:true 和 false;
这种类型只作为一种标志来记录 true/false 情况;
默认值是 false;
char:
注意:char型只能放单个字符!
char a='a'; //任意单个字符,加单引号。
char a='中';//任意单个中文字,加单引号。
char a=111;//整数。0~65535。十进制、八进制、十六进制均可。输出ASCII表中对应的字符。
每一个char类型的字符都能在ASCII表中找到对应的符号,所以在给char型的变量赋值时可以写字符也可以写数字.
示例:
char m='a'; ——a。
char m='a'+'b'; ——Ã。 //char类型相加,提升为int类型,输出对应的字符。注,在CMD.exe用输出结果是 '?' ,不同的编码输出显示不一样。Eclipse中须改成UTF-8。
int m='a'+'b'; ——195。//195没有超出int范围,直接输出195。
char m='a'+b; ——报错。//因为b是一个变量。
char m=197; ——Ã。 //输出字符编码表中对应的字符。
char m='197; ——报错。//因为有单引号,表示是字符,只允许放单个字符。
char m='a'+1; ——b。//提升为int,计算结果98对应的字符是b。
char m='中'+'国'; ——42282。
char m='中'+'国'+'国'+'国'; ——报错。int转char有损失。因为结果已经超出char类型的范围。
int m='中'+'国'+'国'+'国'; ——86820
char m='中'+1; ——丮。//1是int,结果提升为int,输出对应的字符。
char m='中'+"国"; ——报错。String无法转换为char。
System.out.println('中'+"国"); ——中国。//没有变量附值的过程。String与任何字符用“+”相连,转换为String。
ASCII表