1 基本类型
数据类型 | 关键字 | 在内存中占用的字节数 | 取值范围 | 默认值 |
---|---|---|---|---|
布尔型 | boolean | 1个字节(8位) | true,false | false |
字节型 | byte | 1个字节(8位) | -128~127 | 0 |
字符型 | char | 2个字节(16位) | 0~216-1 | ‘\u0000’ |
短整型 | short | 2个字节(16位) | -215~215-1 | 0 |
整型 | int | 4个字节(32位) | -231~231-1 | 0 |
长整型 | long | 8个字节(64位) | -263~263-1 | 0 |
单精度浮点型 | float | 4个字节(32位) | 1.4013E~3.4028E+38 | 0.0F |
双精度浮点型 | double | 8个字节(64位) | 4.9E-324~1.7977E+308 | 0.0D |
强制类型转换
byte b = (byte)129 //合法,变量b的取值为-127(10000001)
如果数学表达式中都是整数,那么表达式的返回值类型必定是int或long
Java语言对字符采用Unicode字符编码
Java语言采用UCS-2编码,每个字符用两个字节(16个二进制位)来编码
以下4种赋值方式是等价的:
char c = 'a'; //最常用的为字符变量赋值的方式
char c = '\u0061'; //设定'a'的16进制的Unicode字符编码
char c = 0x0061; //设定'a'的16进制的Unicode字符编码
char c = 97; //设定'a'的10进制的Unicode字符编码
转义字符:
转义字符 | 描述 |
---|---|
\n | 换行符,将光标定位在下一行的开头 |
\t | 垂直制表符,将光标移到下一个指表符的位置 |
\r | 回车,将光标定位在当前行的开头;不会跳到下一行 |
\ | 代表反斜杠字符 |
\’ | 代表单引号字符 |
\’’ | 代表双引号字符 |
char c1 = '\"';
System.out.println(c1); //打印一个双引号
char c2 = '\\';
System.out.println(c2); //打印一个反斜杠
double d = 1.4; //合法
float f1 = d; //非法,可能会造成精度丢失
float f2 = (double)d; //合法,必须强制转换
2 引用类型
Monkey m1,m2;
m1 = null; //变量m1不引用任何Monkey对象
m1.speak(); //NullPointerException 空指针异常
m2 = new Monkey("崽崽");
m2.speak();
3 直接数
变量定义时直接赋给具体数值
- 对于long , float , double型直接数,可分别加上后缀L或l、F或f、D或d
- 如果一个小数没有任何后缀,那么它是double型直接数
- 对于Java对象,只有String类型对象有直接数(“字符串”)
- 直接数都属于特定的数据类型,可以直接把它赋值给类型一致的变量