- Java中8种基本数据类型的大小都是固定的,与平台无关
- 可以为数字字面量添加下划线,编译器会去除,如1_0000_0000表示1亿,3.1_4表示3.14
- Java中没有任何类似unsigned的无符号类型,如果要获取一个数代表的无符号数据,需要使用其对应方法
- Java的基本数据类型分配在栈中,被new创建的对象分配在堆中
内置类型
- 整型
- 整形字面量默认int类型
- 前缀
0x
十六进制0
八进制0b
二进制- 浮点型
- 浮点字面量默认double类型
- float精度为6~7位有效数字,double精度为15~16位有效数字
- 浮点数也能用十六进制表示,但较复杂
- 字符类型
- unicode的转义序列范围为\u0000 ~ \uFFFF,且在使用时,4个字符必须完整
- unicode的转义序列会在解析代码之前得到处理
- 布尔类型
- Java中的boolean类型不能和其他类型直接比较
- Java中的所有非boolean类型都不能直接作为boolean类型使用
数据类型图
自动类型转换
- Java中,两个数值进行二元运算符时,都会进行自动转换(低级转换成高级),且遵守数据类型间的转换规则
- 所有的byte,short,char型的值将被提升为int型
- 有一个操作数是long型,计算结果是long型
- 有一个操作数是float型,计算结果是float型
- 有一个操作数是double型,计算结果是double型
- 被fianl修饰的变量不会自动改变类型,当2个final修饰相操作时,结果会根据左边变量的类型而转化