Java是一种强类型语言(就是每个变量都要声明一种类型)
一共有8种基本类型(primitive type)
4种整形short、int、long、byte
2种浮点型float、double
1种用于表示Unicode编码的字符单元的字符类型char
1种表示真值的boolean
Java整形:
类型 | 存储需求 |
byte | 1字节 |
short | 2字节 |
int | 4字节 |
long | 8字节 |
Int最常用,long的数据很大,byte和short用于特定的场合(底层文件处理、需要控制占用存储空间量的大数组)
Java的整形范围是java自己定义好的,不论什么平台,大小都是一致的。可移植性好。
长整形(long)有后缀L
十六进制0x(前缀)
八进制0(前缀)
二进制0b(前缀)
从java7开始可以在数字字面量下加下划线_ 为了方便读,编译器会去掉下划线
Java没有无符号类型(unsigned)
浮点类型:
类型 | 存储需求 | 有效位数 |
Float | 4字节 | 有效位数6~7 |
double | 8字节 | 有效位数15 |
Double是双精度,精度是float的两倍
Float类型后面没有加F则默认为double类型
浮点数值不适用于禁止出现舍入的金融计算中,如果要计算不含有任何舍入误差就应该使用BigDecimal(以后再做描述)
NaN表示不是一个数字,在做检测的时候不能用== ,因为非数值都被认为是不相同的
Char类型,表示单个字符 字符常量
Java里面使用的是unicode编码
特殊字符的转义序列符:
转义序列 | 名称 | Unicode值 |
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\” | 双引号 | \u0022 |
\’ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
boolean类型
True&false
整型和布尔类型不能互相转换
数据类型的转换(粗箭头表示无信息丢失的转化,细箭头表示可能有精度的损失)
在进行运算的过程中:
1、两个操作数中有一个是double类型,宁一个转成double类型参与运算
2、否则,有一个操作数是float,则另一个转成float
3、否则,有一个为long,则另一个转成long
4、不然,二者均转为int型来运算