1.下面程序的输出是:(D)
String x="fmn";
x.toUpperCase();
String y=x.replace('f','F');
y=y+"wxy";
System.out.println(y);
A FmNwxy B fmnwxy C wxyfmn D Fmnwxy
String x=“fmn”; ——"fmn"是在常量池中的不可变对象
x.toUpperCase(); ——在堆里new一个“FMN”对象,但无任何引用指向他
String y=x.replace(‘f’,‘F’);——在堆里new一个Fmn对象,y指向他
y=y+“wxy”;
System.out.println(y);——在堆里重新new一个“Fmnxyz”,修改y指向,y指向他
2.在jdk1.5之后,下列 java 程序输出结果为__true true____
int i=0;
Integer j = new Integer(0);
System.out.println(i==j);
System.out.println(j.equals(i));
1.int 和Integer在进行比较的时候,Integer会进行拆箱,转为int值与int进行比较。所以第一个输出true;
2.通过equals比较的是值是否相等,所以输出true
3.关于下面代码片段叙述正确的是(C)
byte b1=1,b2=2,b3,b6;
final byte b4=4,b5=6;
b6=b4+b5;
b3=(b1+b2);
System.out.println(b3+b6);
A 输出结果:13
B 语句:b6=b4+b5编译出错
C 语句:b3=b1+b2编译出错
D 运行期抛出异常
进行数学运算时,若操作数为:byte、short、int 、char,两个数都会被转换成int类型,并且结果也是int类型,b3=b1+b2将int类型赋给byte类型,会编译出错。