牛客网java_牛客网java

1:下列代码运行的结果是什么?

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

396304d7552464f035fa759141fb932f.png

原因:

de470e22164329e0ec1644c53e6cd633.png

2:下面程序的运行结果是:(    )

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

e25bf226a3060ec5807926f46f20c619.png

解释:并不是多线程竞争问题,就是正常执行,t.run是调用的Thead类中的run()方法,t.start才是执行线程,所以这题就是执行普通run()方法,先输出pong,在输出ping。

3:下面程序的输出结果为B

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

f6ce0722a4b0972bd7ae193c71b80bd0.png

解释:第一步,func(1),if条件不成立,不抛出异常,catch不运行,final运行,拼串得到“1”,程序继续往下走,拼串得到“12”。 第二步,fun(2),if条件成立,抛出异常,catch捕获异常,运行catch里面代码,拼串得到“120”,虽然有return,但是不管出不出异常,final里代码必须执行,执行final,拼串得到“1201”,然后return结束。所以最终结果“1201”

4:关于下面的程序Test.java说法正确的是

9eabd3915751776a40b7124ca2341ab3.png

abdbeab602630a2dcef78b544b9cf82b.png

解释:被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量。static 修饰的变量属于类,只能定义在类中方法外。

5:下列哪个对访问修饰符作用范围由大到小排列是正确的

660528fac4eff7335848818a6a7244e7.png

解释:

eec9e3dec6f6ef13314958d303f3ec6c.png

6:在Java中,以下关于方法重载和方法重写描述正确的是

c2dd651e1e67dcd21f026e70f6174f1a.png

解释:

方法重载:同一类中的相同的方法名,参数和返回值均可不同。

方法重写:之类对父类已经实现的方法重新定义。

7:java中将ISO8859-1字符串转成GB2312编码,语句为

91dd64e55ab5c70560b7b680075ecc50.png

解释:

1bc4fbe3a9bc17fd234fa5ef0cf4ffe5.png

8:多态的定义:《疯狂java讲义》的标准解释是: 相同类型的变量、调用同一个方法时呈现出多种不同的行为特征,这就是多态

9:Continue语句跳出整个循环?

5f62d5ce75c174354eea77df1cb0d1dd.png

解释:

e9998c34f9a86d3913d8cdacc3d126ad.png

10:有关线程描述正确的是

5e0d1b7d77fe11e50c0810b9016e033c.png

解释:

采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池。

任何一个对象系统都会为其创建一个互斥锁,这个锁是为了分配给线程的,防止打断原子操作。每个对象的锁只能分配给一个线程,因此叫做互斥锁。

11:对于子类的构造函数说明,下列叙述中错误的是( )

e20d2f5c87561338439c77c1c23adbc8.png

12:下列程序的运行结果

581abf8e33cc8ee428ae50706c0803b2.png

95713e0ddbcbe08fe4304fa428bf7ed5.png

解释:

402b38aba5c23e4ed86992d45ebf6ec8.png

13:下面有关java final的基本规则,描述错误的是

51f047bdac01f1bc1b68fa6e01d2b238.png

解释:

98ecc74800182ce660ccf5a3632f92ea.png

9471d4235805df63f5ecb682bde7bb3b.png

14:

给出以下代码,请给出结果

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

8c67a8f1c5d2c93ba63ff5367f841281.png

解释:

注意x是Byte类型,也就是byte的包装类型,属于引用类型。实例该类对象时,如果成员变量没有显示初始化那么Java默认初始化为null.

该题中引用类型t作为形参进行传递,形参的改变会改变实参的值,所以再次打印t.x时已经变为42了

96742ff0376a6bd4598a573a7a1ac5b4.png

15:以下类型为Final类型的为

983fad652223a1562697e8186609a73a.png

解释:

351c3cf799b9582a4243269ff5023ba4.png

16:关于Java中的数组,下面的一些描述,哪些描述是准确的

d37b44fd94990ea7803e80dfe2362e9f.png

解释:

f9c6600b33c40e357651f10d39bd85df.png

17:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值