六、数据类型进阶
(一)整数类型
1.Java的4种整数类型:byte、short、int、long。
2.java默认的整数计算类型是int型。
如:byte a = 5;
byte b = a+10;(这里会报错,因为计算的默认结果是int类型。改为:byte b = (byte)a+10;或者int b = a+10;)
3.整数的字面量默认是int类型;若字面量超过int类型的最大值(2^31-1),则字面量是long类型(末尾加l/L表示long类型)。
4.java底层byte、short均按照int类型来计算。
(二)浮点类型
1.浮点类型是用于表示小数的数据类型。
2.浮点数表示原理:二进制科学记数法。
3.Java浮点类型:float、double。
(1)float:32位,1位符号位,8位指数位,23位尾数。
float的精度是23位,即能精确表达23位的数,一旦超过23位就会被截取。
小数是以尾数长度来表示精度的,如pi=3.1415926,精度是7位。
float的存储数据的范围大于int类型,但精度比int小,int类型的精度是31位。
(2)double:1位符号位,11位指数,52位尾数。
double的范围远远大于long,但double的精度小于long(long类型的精度是63位)。
4.Java默认浮点类型的计算结果是double类型,字面量也是默认double类型。
若要给float类型赋值,字面量后需添加f/F来表示float类型。如:float f = 5.3f;
(三)字符类型
1.char类型的字面量可以是一个英文字母、字符或一个汉字,用单引号包括。
2.Unicode码
常用的是数字0-9(0:48),大小写字母(a:97,A:65)对应的Unicode码。
(四)转义字符
1.通过转义字符来表示一些特殊的字符,格式是用一个反斜杠表示“\”。
如:’\n’表示换行;’\t’表示制表位字符;’\\’表示\;’\’’表示单引号;’\”’表示双引号;
(五)布尔类型
1.布尔类型表示肯定和否定两种情况true/false。
2.通常用在循环和条件语句中。
如:
七、数据类型转换
(一)小类型转换为大类型
1.小类型向大类型转换会自动完成,不需要编写额外的代码。自动类型转换也称为隐式类型转换。
2.自动类型转换包括:byte->short->int->long->float->double
char和int类型在某些特殊情况下也能自动相互转化。
3.小类型的精度高于大类型时,会出现精度丢失的现象。
4.例:int类型转换为float类型
int类型:32位,其中1位符号位,尾数31位(精度);
float类型:32位,1位符号位,8位指数,23位尾数(表示精度)。
(二)大类型向小类型转换
1.也叫强制类型转换,显示转换。
byte a = 5;
byte b = (byte)a+10;//将计算结果(int类型)强制类型转换为byte类型。
b = 5+10;//无需类型转换,Java对于可直接得出结果的计算结果直接保存在变量b 中,不会出错。
(三)int类型和char类型的转换
1.java处理char类型时在底层是按int类型来处理的。
1.字符类型的数据可进行数值计算。