Java是一种强类型语言,正所谓动漫中都是放大招前都要喊名字。
使用Java变量时也需要声明然后才能使用。
Java中有4大类,8种基本数据类型;相比于吸佳佳(C++),Java的类型长度时固定的长度,不依赖于平台实现。
整型
byte, short, int, long
type | bit | byte | 最大值 | 最小值 |
---|---|---|---|---|
byte | Byte.SIZE | Byte.BYTES | Byte.MAX_VALUE | Byte.MIN_VALUE |
short | Short.SIZE | Short.BYTES | Short.MAX_VALUE | Short.MIN_VALUE |
int | Integer.SIZE | Integer.BYTES | Integer.MAX_VALUE | Integer.MIN_VALUE |
long | Long.SIZE | Long.BYTES | Long.MAX_VALUE | Long.MIN_VALUE |
表示范围
通过封装类,查看他们的大小
// 字节数
System.out.println(Byte.BYTES); // 1
System.out.println(Short.BYTES); // 2
System.out.println(Integer.BYTES); // 4
System.out.println(Long.BYTES); // 8
// 位数
System.out.println(Byte.SIZE); // 8
System.out.println(Short.SIZE); // 16
System.out.println(Integer.SIZE); // 32
System.out.println(Long.SIZE); // 64
浮点型
float, double
有兴趣可以去了解一下[1]
float | double | |
---|---|---|
有效范围 | 6~7位 | 15位 |
Java默认浮点类型 | ✖ | ✔ |
后缀 | f or F | d or D or 不写 |
华丽的分割线 | 特殊值 | 华丽的分割线 |
正无穷大 | Float.POSITIVE_INFINITY | Double.POSITIVE_INFINITY |
负无穷小 | Float.NEGATIVE_INFINITY | Double.NEGATIVE_INFINITY |
不是一个数字 | Float.NaN | Double.NaN |
浮点类型有三个特殊值:
- 正无穷大
- 负无穷小
- NaN(不是一个数字)
注释:检测一个特定值是不是一个数字
Double.isNaN(x)
不可以直接用==
判断
- 注意:Double.NaN double类型中非数字类型的值,它不对应于任何数值。Double.NaN不能与包括他自己在内的任何double类型值比较。
Double十六进制了解一下
布尔型
boolean
Java中有两个boolean类型的值true
和false
,用来判断逻辑条件。
-
注意:整型值和布尔值之间不能相互转换
字符型
char
Java采用的是Unicode
字符集,所以一个char类型的大小不是1个字节,是固定的2个字节。
Unicode
兼容ASCII码,Unicode
也有转移字符。一个char字符也可以用Unicode
码表示。
字符串常量可以使用十六进制写法,注意大小写!!!
常量的写法,单引号包裹,小写
\u
开头,后面接十六进制数字常用的转义字符
警告:Unicode转义序列会在解析代码之前得到处理
什么意思???
你在代码中可以写Unicode
,比如这样:
只要你有耐心,甚至这样:
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0061\u0072\u0067\u0073\u0029\u0020\u007b\u000a\u000a\u007d
在解析之前处理的意思就是,在编译之前十六进制写法的字符会被转义。当你的代码中有\u
时,会被当成十六进制字符处理的。
例如,\user
会被当成一个十六进制字符来解析,然后就会报错。
参考
Java核心技术卷一
Java 基本数据类型
IBM: 您的小数点到哪里去了?
CSDN 浮点数表示
CSDN NaN与NaN比较是否相等