一、Java中的数据类型:基本数据类型和引用数据类型(复合数据类型)
1、基本数据类型:(四类八种)
(1)整型
数据类型 空间分配 取值范围 备注
long 8字节 -2^63---2^63-1 常量后缀一般是L或l
int 4字节 -2^31---2^31-1 常量默认为int类型
short 2字节 -2^15---2^15-1
byte 1字节 -128---127
(2)浮点型:
数据类型 空间分配 取值范围 备注
double 8 略 后缀是d或D,小数点后15位,适合科学计算和工程计算
float 4 略 后缀是f或F,小数点后7位,适合科学计算和工程计算
案例思考:double比long类型的数据的取值范围要大的多,为什么?
long采用补码存储,double和float存储分为三个部分,分别是符号位、指数位和尾数
float:最高位表示符号, 指数位8位,尾数位23
double:最高位表示符号,指数位11位,尾数位52
(3)字符型
数据类型 空间分配 取值范围 备注
char 2个字节 'u0000'~'uffff' 兼容ascii码字符集
(4)布尔型
数据类型 空间分配 取值范围 备注
boolean 1个位 true或false 不能与整型数据进行运行
补充内容:整型数据都采用补码存储。
(1)原码:一个数的绝对值+符号在计算机中的表达形式,如果是负数,最高位符号位是1,如果是整数符号位是0。
正数在计算机中的表示形式:
13: 00001101
-13 10001101
+0 00000000
-0 10000000
(2)反码:对于正数原码和反码相同,负数原码符号位不变其余位按位取反
13: 00001101
-13 11110010
+0 00000000
-0 11111111
(3)补码:对于正数原码、反码和补码相同,对于负数反码末位+1
13: 00001101
-13 11110011
+0 00000000
-0 00000000
进制:常见的进制包括10进制、2进制、8进制、16进制等等
10进制:由0 1 2 ....9 十个 数字所组成的进制系统称为10进制,逢十进一,每一位的权是10的n次方。
2进制:由0 1 两个 数字所组成的进制系统称为2进制,逢二进一,每一位的权是2的n次方。是计算机世界常采用的进制系统。
8进制:由0 1 ...7 八个 数字所组成的进制系统称为8进制,逢八进一,每一位的权是8的n次方。
八进制在使用时以0开头的,0123, 012,。。。。。
16进制:由0 1 ...9 a b c d e f 十六个 数字所组成的进制系统称为16进制,逢十六进一,每一位的权是16的n次方。
十六进制数在使用时以0x开头,0x123
进制间的转换:
10进制与2进制相互转换
10进制转2进制:除2取余
案例作业:给定一个十进制数转换二进制
案例作业:进制之间的相互转换
2、引用类型:类、数组、接口、枚举等等
3、void:无值型, 用于定义方法
二、数据类型转换:包括自动转换和强制转换。
1、自动转换:也称为向上转型。
2、强制转换:也称为向下转型。Java中的语法格式:
(类型)表达式或者变量或者常量
注意事项:
对于基本类型数据强制转换发生时会损失精度,引用类型转换时可能会发生运行时异常ClassCastException的异常,
可以使用运算符instanceof来验证被强制转换的对象或者引用是否属于强转的类型