八大基本类型(内置类型),存于栈,存取速度快于存储在堆中的对应包装类的实例对象
1)字符类型:char(16位)
2)布尔类型:boolean
3)数值类型:byte(8位) short(16位) int(32位) long(64位) float(32位) double(64位)
(JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变)
小结:
1、未带有字符后缀标识的整数默认为int类型;未带有字符后缀标识的浮点数默认为double类型。
2、如果一个整数的值超出了int类型能够表示的范围,则必须增加后缀“L”(不区分大小写,建议用大写,因为小写的L与阿拉伯数字1很容易混淆),表示为long型。
3、带有“F”(不区分大小写)后缀的整数和浮点数都是float类型的;带有“D”(不区分大小写)后缀的整数和浮点数都是double类型的。
4、编译器会在编译期对byte、short、int、long、float、double、char型变量的值进行检查,如果超出了它们的取值范围就会报错。
5、int型值可以赋给所有数值类型的变量;long型值可以赋给long、float、double类型的变量;float型值可以赋给float、double类型的变量;double型值只能赋给double类型变量。即:只能一层一层往上赋值。
6.当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则:
1)只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;
2)否则,只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;
3)否则,只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
4)否则,两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。
7.当使用+=、-=、*=、/=、%=、运算符对基本类型进行运算时,遵循如下规则:
1)运算符右边的数值将首先被强制转换成与运算符左边数值相同的类型,然后再执行运算,且运算结果与运算符右边数值类型相同。
short s1 = 1; s1 = s1 + 1; // 这一行代码会报编译错误 s1 = 1 + 1; // 这一行代码没有报错 s1 += 1; // 这一行代码也没有报错 |
8.Math.round()方法
1)参数的小数点后第一位<5,运算结果为参数整数部分。
2)参数的小数点后第一位>5,运算结果为参数整数部分绝对值+1,符号(即正负)不变。
3)参数的小数点后第一位=5,正数运算结果为整数部分+1,负数运算结果为整数部分。
小数点后第一位=5 正数:Math.round(11.5)=12 负数:Math.round(-11.5)=-11 小数点后第一位<5 正数:Math.round(11.46)=11 负数:Math.round(-11.46)=-11 小数点后第一位>5 正数:Math.round(11.68)=12 负数:Math.round(-11.68)=-12 |