1:下列代码运行的结果是什么?
public classP {public static int abc = 123;static{
System.out.println("P is init");
}
}public class S extendsP {static{
System.out.println("S is init");
}
}public classTest {public static voidmain(String[] args) {
System.out.println(S.abc);
}
}
View Code
原因:
2:下面程序的运行结果是:( )
public static voidmain(String args[]) {
Thread t= newThread() {public voidrun() {
pong();
}
};
t.run();
System.out.print("ping");
}static voidpong() {
System.out.print("pong");
}
View Code
解释:并不是多线程竞争问题,就是正常执行,t.run是调用的Thead类中的run()方法,t.start才是执行线程,所以这题就是执行普通run()方法,先输出pong,在输出ping。
3:下面程序的输出结果为B
public classDemo {public static String sRet = "";public static void func(inti)
{try{if (i%2==0)
{throw newException();
}
}catch(Exception e)
{
sRet+= "0";return;
}finally{
sRet+= "1";
}
sRet+= "2";
}public static voidmain(String[] args)
{
func(1);
func(2);
System.out.println(sRet);
}
}
View Code
解释:第一步,func(1),if条件不成立,不抛出异常,catch不运行,final运行,拼串得到“1”,程序继续往下走,拼串得到“12”。 第二步,fun(2),if条件成立,抛出异常,catch捕获异常,运行catch里面代码,拼串得到“120”,虽然有return,但是不管出不出异常,final里代码必须执行,执行final,拼串得到“1201”,然后return结束。所以最终结果“1201”
4:关于下面的程序Test.java说法正确的是
解释:被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量。static 修饰的变量属于类,只能定义在类中方法外。
5:下列哪个对访问修饰符作用范围由大到小排列是正确的
解释:
6:在Java中,以下关于方法重载和方法重写描述正确的是
解释:
方法重载:同一类中的相同的方法名,参数和返回值均可不同。
方法重写:之类对父类已经实现的方法重新定义。
7:java中将ISO8859-1字符串转成GB2312编码,语句为
解释:
8:多态的定义:《疯狂java讲义》的标准解释是: 相同类型的变量、调用同一个方法时呈现出多种不同的行为特征,这就是多态
9:Continue语句跳出整个循环?
解释:
10:有关线程描述正确的是
解释:
采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池。
任何一个对象系统都会为其创建一个互斥锁,这个锁是为了分配给线程的,防止打断原子操作。每个对象的锁只能分配给一个线程,因此叫做互斥锁。
11:对于子类的构造函数说明,下列叙述中错误的是( )
12:下列程序的运行结果
解释:
13:下面有关java final的基本规则,描述错误的是
解释:
14:
给出以下代码,请给出结果
classTwo{
Byte x;
}classPassO{public static voidmain(String[] args){
PassO p=newPassO();
p.start();
}voidstart(){
Two t=newTwo();
System.out.print(t.x+””);
Two t2=fix(t);
System.out.print(t.x+” ” +t2.x);
}
Two fix(Two tt){
tt.x=42;returntt;
}
}
View Code
解释:
注意x是Byte类型,也就是byte的包装类型,属于引用类型。实例该类对象时,如果成员变量没有显示初始化那么Java默认初始化为null.
该题中引用类型t作为形参进行传递,形参的改变会改变实参的值,所以再次打印t.x时已经变为42了
15:以下类型为Final类型的为
解释:
16:关于Java中的数组,下面的一些描述,哪些描述是准确的
解释:
17: