1.题目:请问您觉得下面代码会输出什么()
答案:true
false
首先将2存在常量池中,然后再重新装箱,将地址给a,当运行到int b=2;这句代码时,直接将常量池中的地址给b,所以a==b就是true,然后下一个输出为什么时false之前的总结中有类似的题目,在之前的题目中已经做出了解释,本题就不解释了哈。
2.题目:
现有:
class Test{
public static void main (String [] args) {
short a,b,c;
a=1;
b=2;
c=a+b;
a=2;
}
}
以上代码中,哪一句是错误的?
A a=1; B c=a+b; C b=2; D short a,b,c;
答案:B
byte char short三种数据类型,它们在运算时,会自动转换成int类型进行运算,所以a+b的运行结果类型为int,int型不能直接转换成short,需要强制转换,所以c=a+b;这句有错误。
3.总结上课讲的知识点
编译时常量,结合下图来理解就是通过编译就知道这个常量的值,就不需要运行Test3这个类,就可以使用这个常量。但public static final double PI=Math.random();这句代码就不行,编译时不知道它的值,就必须先运行Test3这个类,它就不是编译时常量。
宝剑锋从磨砺出,梅花香自苦寒来。--冯梦龙
加油!小芳同学



