Java有两大数据类型
- 内置数据类型
- 引用数据类型
内置数据类型
-
byte:8位整数,默认值0
-
short:16位整数,默认值0
-
int:32位整数,默认值0
-
long:64位整数,默认值0L (L不分大小写,但小写l容易与1混淆,最好大写)
-
float:32位浮点数,默认值0.0f
-
double:64位浮点数,默认值0.0d (浮点数的默认类型为double类型)
-
boolean:布尔类型,只有两个取值:true和false,默认值false
-
char:单一的16位unicode字符,最小值u0000,最大值uffff
下表列出了Java各个内置类型的默认值:
引用类型
-
在Java中,引用类型类似于c/c++的指针。
-
引用类型指向一个对象,指向对象的变量是引用变量。
-
对象、数组都是引用类型。
-
所有引用类型的默认值为null.
Java常量
常量在程序运行过程中不可修改。
在Java中使用final
关键字修饰常量:
final double PI = 3.1415926
通常使用大写字母表示常量。
前缀0
表示8进制,前缀0x
表示16进制:
int a = 0122; // 8进制
int b = 0x12; // 16进制
和C语言一样,Java字符串常量在双引号之间,字符常量在单引号之间:
"hello" // 字符串常量
'a' // 字符常量
字符串常量和字符常量都可以包含任何Unicode字符。例如:
char a = 'u0001';
String a = "u0001";
一些特殊转移字符:
自动类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级。
数据类型转换规则:
-
不能对boolean类型进行类型转换。
-
不能把对象类型转换成不相关类的对象。
-
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
-
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。
强制类型转换
-
条件是转换的数据类型必须是兼容的。
-
格式:(type)value ,其中type是要强制类型转换后的数据类型。