Java数据类型分类
基本数据类型
数值类型
数值类型
-
byte类型占一个字节范围:-128~127
-
short类型占两个字节范围:-32768~32767
-
byte和short主要用于特定的应用场合,例如底层文件的处理或者存储空间很宝贵时的大数组
-
-
int类型占四个字节范围:-2147483648~2147483647(刚超过21亿)
-
在Java中大数之间常用下划线_分割,不会对输出有影响(java编辑器会去除这些下划线)
-
-
long类型占八个字节范围:-9223372036854775808~9223372036854775807
-
long型后面要有大写L或者小写l
整数扩充
-
二进制表示:0b或者0B开头
-
八进制表示:有0前缀,例如010表示8
-
十六进制:0x或者0X开头
-
浮点类型
-
float类型占四个字节
-
精度:6~7位有效数字
-
一定有一个后缀F或者f
-
-
double类型占八个字节
-
精度:是float的两倍
-
可以有后缀D或者d
-
-
用于表示溢出和出错的三个特殊浮点数数值
-
正无穷大:常量Double.POSITIVE_INFINIT
-
负无穷大:常量Double.NEGATIVE_INFINITY
-
NaN(非数字):常量Double.NaN
-
常用Double.isNaN(x)判断x是不是数字
-
-
-
浮点数值不适合用于无法接受舍入误差的金融计算,这时需要用大BigDecimal类(大数类)
字符类型
-
char类型占四个字节
-
char类型表示单个字符用单引号''
-
string类表示字符串用双引号""
-
所有的字符本质还是数字
-
-
特殊的转义字符(转义字符:\u)
转移序列 | 名称 | Unicode值 |
---|---|---|
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\' | 单引号 | \u0022 |
\" | 双引号 | \u0027 |
\\ | 反斜杠 | \u005c |
-
Unicode编码占两字节范围从\u0000~\uFFFF
-
Unicode转移序列会在解析代码之前处理,例如"\u0022+\u0022"结果为""+""
布尔类型
-
boolean类型占一位,只有false和true两个值
引用数据类型
-
类
-
接口
-
数组
数据类型转换
-
运算中不同类型的数据需要先转化为同一类型,然后进行运算
-
整型和布尔型不能进行相互转换
低——————————————>高
byte,short,char->int->long->float->double
强制类型转换(从高到底)
格式:(类型名)变量
int i=128; byte j=(byte)i;//i从int到byte需要强制转换
自动类型转换(从低到高)
int i=128; double j=i;//i从低到高结果变为128.0
-
转换可能出现内存溢出或者精度问题
-
精度问题:
精度丢失!!! -
内存溢出:
内存溢出变为负数!!!
将任意一个运算数强制转换为长整型后输出正确结果!!
参考书籍:Java核心技术 卷1(原书第11版)