Java数据类型
一、八大基本类型
1. 整型类
类型 | 占用存储空间 | 范围 |
---|---|---|
byte | 1字节=8bit | -128~127 2^8 |
short | 2字节 | -2^15~2^15-1 |
int | 4字节 | -2^31~2^31-1(约21亿) |
long | 8字节 | -2^63~2^63-1 |
说明:声明long型必须以“l”或者“L”结尾。整型默认为int。
2.浮点类型
类型 | 占用存储空间 | 范围 |
---|---|---|
单精度float | 4字节 | -3.403E38~3.403E38 |
双精度double | 8字节 | -1.798E308~1.798E308 |
说明:
1. float的范围比long要大
2.float要以f或者F结尾
3.浮点型默认为double
3.字符型
char (1个字符==2个字节)
char c1=‘A‘
char c2=‘Aa‘ //报错 编译不通过
char c3=‘‘ //报错 编译不通过
ASCII码 97=’a’ 65=’A’ 48=‘1’适用英语
Unicode 适用全世界语言
UTF-8 升级版
4.布尔型
boolean
占用4个字节。理由来源是《Java虚拟机规范》一书中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。这样我们可以得出boolean类型占了单独使用是4个字节,在数组中又是1个字节。
《Java虚拟机规范》给出了4个字节,和boolean数组1个字节的定义,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。
二、七种基本类型之间的转换
1.自动类型提升
当容量小的数据类型的变量与数据类型大的变量做运算时,结果自动提升为容量大的数据类型。byte char short int long float double
当byte char short 三种类型的变量做运算时,结果为int 型
2.强制类型转换
-
可能会导致精度损失。
-
long l=123123 没加L 不报错 自动转换为int了。
三、引用数据类型
1.String
string中的+ 为连接运算,看+左右有一个string 则都是连接运算。
2.数组
3.接口
四、进制转换
-
八进制 以0开头,十六进制以0x开头
-
当为负数时:原码 反码+1= 补码 计算机都是以补码来存储数据。
-
二进制转八进制 三个一位 十六进制四个一位
-
八进制转二进制 一位变三个 十六进制一位变四个
Java数据类型
原文地址:https://www.cnblogs.com/jiangxuan/p/13369539.html