类型转换
int a=10;
double b=3.4;
System.out.println(a>b?a:b);
System.out.println(a);
/*输出:10.0 10
解析:这里是一个很容易让人不注意的类型转化,这里a与b参与了运算,
所以类型向类型大的方向转化,10就变成了10.0,但是a本身是没有变化的*/
+=的情况
short a=1; //第一行
a=a+1; //第二行
a+=1; //第三行
/*第几行的代码会出错?
答案:第二行会出错,由于a+1变为了int类型,而int类型不能直接赋值给short类型
但是+=这种情况是特殊的,所以不会出错;
*/
包装类型与基本类型比较
Integer a1 = 127;
Integer a2 = 127;
int a3 = 127;
Integer b1 = 128;
Integer b2 = 128;
int b3 = 128;
System.out.println(a1 == a2); //T
System.out.println(a1 == a3); //T
System.out.println(b1 == b2); //F
System.out.println(b1 == b3); //T
/*输出:
解析:自动装箱时采用valueOf方法,由于127在静态数组的范围内,所以不是new的,
而128的两个引用是指向new出现对象的,所以第一个是true,第三个是false。
而包装类和基本数据类型比较时,只要数值是相等的,就相等
*/
包装类和基本数据类型比较时,只要数值是相等的,就相等