目录
Java是一种强类型语言。->每一个变量都必须有一种类型。
Java中共有八种基本数据类型,其中有4种整型(byte、short、int、long),2种浮点类型(float、double),1中字符类型(char,用于表示Unicode编码的代码单元)和1中用于表示真值的boolean类型。
1.整型
整型用于表示没有小数部分的数值,允许是负数。其中共有四种类型。
- 注意,在Java中,可以通过在数字前面加上前缀(0x对应十六进制,0b对应二进制(从Java 7开始))来使得数字变为不同进制。
特别地,如果使用前缀0,表示为八进制。但是此种表示容易混淆,不建议使用。
- 另外,从Java 7开始,可以为数字字面量(等号右边的部分)加下划线。
例如:
int a = 0x11; //a对应的十进制数为17
int b = 0b11; //b对应的十进制数为3
int c = 1_000_000; //c对应的数字为100万
2.浮点型
浮点型用于表示有小数部分的数值。共有两种类型。
- float类型的数值有一个后缀F或者f(如,3.14F)。如果只是定义一个没有后缀F的浮点数值(如,3.14),则默认这个字面量为double类型。也可在浮点数值后面加后缀D或d(如,3.14D)。
- 注意:浮点数类型不适用于无法接受舍入误差的金融计算。因为Java中的浮点数值采用IEEE 754二进制系统表示,而在二进制系统汇总无法精确表示分数1/10。
例如:
float a = 3.14f; \\正确
float b = 3.14; \\报错,因为不加f后缀,默认为double类型
double c = 3.14; \\正确
double d = 2.0 - 1.1; \\d的值为0.899999999
3.char类型
char类型(2字节)原本用于表示单个字符。其字面量类型用单引号括起来。如,'A'是编码值为65的字符常量。与"A"不同,"A"是一个包含A的字符串。
另外,有些Unicode字符也可用char值描述,此时char类型的值表示为十六进制值,取值范围从\u0000到\uFFFF。除了转义序列\u外,还有一些用于表示特殊字符的转义序列。这些值可以出现在加引号的字符常量或字符串中。
- 转义序列\u可以出现在加引号的字符常量或字符串之外,而其它的转义序列不可以。
char a = 'A'; //正确
char b = '\u2122'; //正确,使用\u转义序列表示商标符号
String c = "\u0022+\u0022"; //注意,\u会在解析代码之前得到处理,这意味着c在编译时会变成""+""即空字符串。而不是包围加号构成的字符串。
// \u000A is new line 会产生一个语法错误,因为\u000A会首先被替换为一个换行符。
注:Java中,char类型描述了UTF-16编码中的一个代码单元。因此,一般在程序中不要使用char类型,除非确实要处理UTF-16代码单元。最好使用字符串代替。
4.boolean类型
boolean(布尔)类型有两个值:false和true,用来判断逻辑条件。整型和布尔类型不能相互转换。