JAVA测试题!

1.class StaticStuff
{
static int x=10;
static { x+=5;}
public static void main(String args[])
{
System.out.println("x=" + x);
}
static { x/=3;}
}
为何打印出来是5?
2.执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的( )
A、x[24]为0 B、x[24]未定义 C、x[25]为0 D、x[0]为空
选哪个?为什么?
3.class AB{
public static void main(String [ ] args){
long i=0;
try{
i=Integer.parseInt(args[0]);
}catch(Exception e){ }

switch(i)
{case 0: System.out.println("0");
case 1: System.out.println("1");
default : System.out.println("default"); }
}
}
A、编译出错 B、打印出“0” C、打印出“1” D、打印出“default”
为什么通不过编译?怎么改?
4.break中断语句,若在一个FOR语句中加入break语句,它可以 ( )
A、对FOR语句执行没有影响 B、中断本次循环,进入下一次循环
C、退出FOR循环,执行FOR语句后面的语句 D、以上说法均不对
选什么?

 

答案参考:

1 跟java运行的机制有关,java先加载静态域,static int x=10; ,然后静态块static { x+=5;},static { x/=3;}(虽然位置在后但先运行) ,然后静态方法static void main
所以x=10,x=15,x=5.
2 A因为int [ ] x = new int[25],数组建立后,每个元素默认值为0;x[24]=0;x[25] 下标越界,x[0]=0;
3 switch(i)不接受long型,int或者枚举型可以。i=Integer.parseInt(args[0]);虽然这样每课时i还是long型的。
4 c,没什么好说的,就是这么规定的!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值