5.数据类型
不同的数据类型占用不同的内存空间
数据类型的作用是,指导JVM在运行程序的时候给该数据分配多大的内存空间
分类
1)基本数据类型
8种基本数据类型{注意C中的字节数与操作系统的位数有关}
第一类:整数型(默认值:0)
名称 | 类型 | 字节 | 位数 | 举例 | 范围 |
byte | 字节型 | 1字节 | 8位 | 如:123,100 | -128~127(-2^7~2^7-1) |
short | 短整型 | 2字节 | 16位 | 如:123,456 | (-32768~32767)(-2^15~2^15-1) |
int | 整型 | 4字节 | 32位 | 如:123,456 | -2147483648~2147483647(-2^31~2^31-1) |
long | 长整型 | 8字节 | 64位 | 123,456 | -9223372036854775808~9223372036854775807(-2^63~2^63-1) |
整型数据默认是int类型,在后面加上l\L就是long类型
在表示时,十进制:10;八进制:010;十六进制:0x10
强制类型转换,例如:long x=100L;int y=(int)x;------但是会损失及精度(谨慎使用)
字面值没有超过类型范围,可以不用强制转换
第二类:浮点型(默认值:0.0)
名称 | 类型 | 字节 | 位数 | 举例 | 备注 |
float | 单精度浮点型 | 4字节 | 32位 | 123.567f,456.123F,3.0F | |
double | 双精度浮点型 | 8字节 | 64位 | 123.567,456.123 | 默认的小数点的类型为double |
还有精度更高的类型,适合做财务软件:java.math.BigDecimal
java的SE类库
字节码位置:C:\Program Files\JAVA\java\jdk1.8.0_251\jre\lib\rt.jar
源码位置:C:\Program Files\JAVA\java\jdk1.8.0_251\srt.zip
String.java和String.class--------->String[] args中的String使用的就是String.class字节码文件
浮点型数据默认是double类型,在后面加上f\F就是float类型
第三类:字符型(默认值:\u0000){与C不同,C中是1字节}
名称 | 类型 | 字节 | 位数 | 举例 | 备注 |
char | 字符类型 | 2字节 | 16位 | 如'2','A','中','国' | 必须要用单引号引上 |
java中char类型可以存储一个中文字符------JDK中的native2aseii.exe可以将中文符号转换成unicode编码
怎么使用native2aseii?
答:在命令行输入该命令,回车,然后输入文字,回车,就可以得到unicode编码
char n='\u4e2d';//'中'对应的unicode编码是 4e2d
转义字符
“\”是字符文字,和其他字母构成转义字符
出现在特殊字符前,会将特殊字符转换成普通字符
第四类:布尔型(默认值:false)
名称 | 类型 | 字节 | 备注 |
boolean | 布尔型 | 4字节 | 只有2个值: true --真,false--假 |
java中只有boolean类型才可以表示真假{C中1表示真,非0表示假}
boolean falg=1;//编译错误,不兼容的类型
2)引用数据类型
类
接口
数组
字符串
进制转换、字节、符号位{均与C语言一致}
6.数据类型转换
除了boolean类型,其他之间都可以转换
规则:
byte<short(char)<int<long<float<double
注意:任何浮点类型不管占多少字节,都比整型容量大
char和short可表示的种类数量相同,但是char可以取更大的整数
7.字符编码
发展史:最先出现的字符编码就是ASCII码------>后来出现了一种编码方式,是国际标准组织ISO制定的,它支持西欧语言,但不支持中文,向上兼容ASCII码(ISO-8859-1,又被称为latin-1)------>
向亚洲发展,支持简体中文的(容量:GB2312<GBK<GB18030)------->支持繁体中文(大五码<big5>)------->所有国家(unicode编码:UTF-8/UTF-16......)
java语言源代码使用unicode编码,所以标识符可以用中文,在实际编码中一般使用UTF-8