做题时踩过的坑

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(){
    }
  }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值