1.局部内部类可以用哪些修饰符修饰?
我的答案:public、private
错误原因:局部内部类是放在代码块或方法中的,不能有访问控制修饰符,且不能用static修饰。能用的是abstract、final。
2.ArrayList list = new ArrayList(20);中的list扩充了几次
我的答案:2次
错误原因:ArrayList默认大小为10,每次扩充1.5倍,但是本题中指定了数组大小的创建,没有扩充
3.一下代码执行后输出结果为
public class Test {
public static int f() {
try {
return 0;
} finally {
return 1;
}
}
public static void main(String[] args) {
System.out.println(Test.f());
}
}
我的答案:0
错误原因:如果try,finally语句里均有return,忽略try的return,而使用finally的return.
4.抽象类自身可以定义成员变量,而接口不可以。
我的答案:正确
错误原因:接口允许定义成员,但必须是常量。
5.String s = new String(“xyz”);创建了几个StringObject?
我的答案:2个
错误原因:如果xyz对象已经在常量池了,则创建一个在堆中,反之,一个创建在常量池中,一个创建在堆中
6.对于如下代码段
class A {
public A foo() {
return this;
}
}
class B extends A {
public A foo() {
return this;
}
}
class C extends B
{
_______
}
可以放入到横线位置,使程序正确编译运行,而且不产生错误的选项是( )
A.public void foo|(){}
B.public int foo(){return 1;}
C.public A foo(B b){rturn b;}
D.public A foo(){return A;}
我的答案:D
错误原因:若是重写,返回值类型不可小于父类返回值类型;若是重载需参数列表不同。D选项中返回值中A未定义,编译错误。所以应该选择C。
7.以下代码执行后的输出结果为
public class TestDemo {
public static String output ="";
public static void foo(int i){
try{
if(i == 1){
throw new Exception();
}
}catch(Exception e){
output += "2";
return ;
}finally{
output += "3";
}
output += "4";
}
public static void main(String[] args) {
foo(0);
foo(1);
System.out.println(output);
}
}
我的答案:34234
错误原因:void函数可以return空值,所以代码没错。第一次try没执行,所以没有异常抛出,程序继续,finally必须执行,try外部代码执行,output=“34”。第二次try执行,抛出异常,程序中断,执行catch,最后执行finally,程序结束,所以output=3423。如果catch中没有return则输出output=34234。
8.执行完int[] a = new int[10];后,以下哪些说法是正确的
A.x[9]为0
B.x[9]未定义
C.[10]为0
D.x[0]为空
我的答案:D
错误原因: 数组的长度为n,角标从0到n-1,数组是引用类型,但是数组中的原生类型,有自己的默认值。
9.下面代码执行后的结果是多少
public static void main(String[] args) {
int count = 0;
int num = 0;
for (int i = 0; i < 100; i++) {
num = num+i;
count = count++;
}
System.out.println(num*count);
}
我的答案:510050
错误原因:for循环外面count=0,循环里面的count=count++;(count的值都等于count值,而后面count自加不影响count结果,因此这个式子无意义);循环count都为0(因count++是先返回count的本身值再自加1的)。若是改为count=++count;(先自加,再返回自加后的值),结果就是5050*101=510050了!
10.下列哪个选项是错误的。()
A. 一个文件中只能有一个public class。
B. 一个文件中可以有多个类。
C. 一个类中可以有两个main方法。
D. 若类中只含一个main方法,则必须是public的。
我的答案:B
解析:这道题的4个选项全是错的。
A.一个文件中,可以有多个public class
public class Main {
public class Inner{
}
}
即,外部类为public,还可以有public的内部类。
B.一个文件中可以有多个类,可以是多个并列的类,也可以是外部类、内部类结合。
C.一个类中,可以有多个main方法,这是重载,但是public static void main(String[] args)的方法只能有一个。
D.类中,可以有main方法,也可以没有main方法,而有一个main()方法的时候,也可以是任意访问权限。因为这个类不一定要执行,可以只是辅助类。
public class MainTest { void main(){
}
}