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型来运算