(一)基本数据类型转换
1.自动类型转换:Java程序在赋值或者运算时,精度小的类型自动转换为精度大的类型。
两条自动转换:
char--int--long--float--double
byte--short--int--long--float--double
举例:float a = 5.4是不合法的,因为5.4在Java中默认为double类型,将double类型赋值给float是不合法的
运算时会先将所有数据转换成容量最大的那种数据类型,然后再进行计算。
注意:
1.byte,short与char不发生自动转换,但可以相互运算,运算时先转换为int类型,
2.boolean不参与转换,
3.自动转换原则:表达式结果的类型自动转换为操作数中最大的类型。
4.例外:short a = 2;
byte b = 2;是合法的,因为2是在short和byte范围内的数(byte范围是-128到127)
2.强制类型转换:将容量大的类型转换为容量小的类型,自动类型转换的逆过程。
语法格式:在()中给出想要转换的类型,后面紧跟待转换的变量名,例如
double x = 9.997;
int nx = (int)x;
nx结果为9;
注意:1.byte,short与char不发生自动转换,但可以相互运算,运算时先转换为int类型,
2.使用强制转换时要注意数据溢出和丢失
(二)常用编码
1.ASCII码
只使用一个字节表示英文字符,缺点是不能表示所有的字符(中文,其他国家文字等)
2.Unicode码
好处:把世界上所有的符号都纳入其中,兼容ASCII码
缺点:一个英文字母和一个汉字都占用两个字节,造成了内存的浪费
3.UTF-8编码,
使用大小可变的编码,一个英文字母占一个字节,一个汉字占三个字节。