赞
踩
选自牛客网
A.class x { … }
B.class x extends y { … }
C.static class x implements y1,y2 { … }
D.public class x extends Applet { … }
正确答案:C 解析:
选项A:
class x { .... }
是正确的,这是最基本的类定义形式,没有继承任何类,也没有实现任何接口。选项B:
class x extends y { .... }
也是正确的,这里定义了一个名为x的类,它继承了名为y的类。选项D:
public class x extends Applet { .... }
同样是正确的,这里定义了一个公共类x,它继承了Applet类,这在Java中是合法的,尤其是在创建GUI应用程序时常见。选项C:
static class x implements y1,y2 { .... }
是不正确的,因为在Java中,我们不能使用static
关键字来修饰一个类的定义。static
关键字只能用于类的方法、变量或者是内部类(即嵌套类),但不能用于顶级类(非嵌套类)。所以,这个选项是错误的。因此,正确答案是C。
A.final
B.#define
C.float
D.const
正确答案:A
final关键字可用于修饰类、变量和方法。final修饰变量时,表示该变量一旦获得了初始值就不可被改变,final既可以修饰成员变量也可以修饰局部变量、形参。
选项B的#define
是C和C++中用来定义宏的预处理器指令,不是Java的一部分。选项C的
float
是Java中的一个基本数据类型,用来表示单精度浮点数,而不是用来定义常量的关键字。选项D的
const
在Java中并不是用来定义常量的关键字。虽然在其他一些编程语言(如C和C++)中,const
用于定义常量,但在Java中并没有使用const
来定义常量。因此,正确答案是A。
public class ZeroTest {
public static void main(String[] args) {
try{
int i = 100 / 0;
System.out.print(i);
}catch(Exception e){
System.out.print(1);
throw new RuntimeException();
}finally{
System.out.print(2);
}
System.out.print(3);
}
}
A.3
B.123
C.1
D.12
正确答案:D
这段代码中,
main
方法尝试执行int i = 100 / 0;
,这将导致一个ArithmeticException
异常,因为除以零是不允许的。由于ArithmeticException
是RuntimeException
的子类,它会被捕获到catch (Exception e)
块中。在
catch
块中,首先输出数字1
,然后抛出一个新的RuntimeException
。但是,这个新抛出的异常并不会影响程序的执行流程,因为它是在catch
块中抛出的,而catch
块之后紧跟着finally
块,finally
块总是会执行。在
finally
块中,输出数字2
。由于在
catch
块中抛出了新的RuntimeException
,并且没有其他的catch
块来捕获这个异常,这个异常会传播到调用栈,导致main
方法结束,因此不会执行到finally
块之后的System.out.print(3);
。
所以,这段代码的输出结果是12
,即选项D。
boolean isOdd = false;
for(int i=1;i<=2;++i){
if(i%2==1)isOdd = true;
else isOdd = false;
a+=i*(isOdd?1:-1);
}
A.-1
B.-2
C.0
D.1
正确答案:D
解析:
这段代码的作用是计算1和2的交替和,即1-2或者2-1。无论线程1和线程2如何交错执行,最终的结果只可能取决于最后一次循环的
i
值和isOdd
的值。
- 如果最后一次循环的
i
是1,那么isOdd
将是true,因此a
将增加1。- 如果最后一次循环的
i
是2,那么isOdd
将是false,因此a
将减少2。由于两个线程都在操作同一个变量
a
,并且没有同步机制来确保操作的原子性,所以可能会发生竞争条件。但是,即使考虑到并发执行的可能性,最终a
的结果也只能是-1、-2或0。
- 如果线程1先执行,且最后一次循环的
i
是1,那么a
增加1变为1。然后线程2执行,最后一次循环的i
是2,a
减少2变为-1。- 如果线程1先执行,且最后一次循环的
i
是2,那么a
减少2变为-2。然后线程2执行,最后一次循环的i
是1,a
增加1变为-1。- 如果线程1和线程2交替执行,每次循环都交替一次,那么最终
a
的结果会是0。因此,最终
a
的结果不可能是1,因为没有任何情况会导致a
增加2或者减少1。所以正确答案是D。
祝大家每天开开心心,事业有成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。