牛客网第23天

1.定义类中成员变量时不可能用到的修饰是()
A.final
B.void
C.protected
D.static
正确答案: B 你的答案: C (错误)
解析:void是修饰方法的,没有返回值,final是修饰常量的,protected是保护的,static是静态的
2.一个以”.java”为后缀的源文件
A.只能包含一个类,类名必须与文件名相同
B.只能包含与文件名相同的类以及其中的内部类
C.只能有一个与文件名相同的类,可以包含其他类
D.可以包含任意类
正确答案: C 你的答案: C (正确)
解析:记住即可
3.检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。
package algorithms.com.guan.javajicu;
public class Example {
String str = new String(“good”);
char[] ch = {‘a’,‘b’,‘c’};
public static void main(String[] args) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str +“and”);
System.out.print(ex.ch);
}

public void change(String str, char ch[]){
str= “test ok”;
ch[0]= ‘g’;
}
}
A.test okandabc
B.test okandgbc
C.goodandabc
D.goodandgbc
正确答案: D 你的答案: D (正确)
解析: java 中String是 immutable的,也就是不可变,一旦初始化,其引用指向的内容是不可变的。
也就是说,String str = “aa”;str=“bb”;第二句不是改变“aa”所存储地址的内容,而是另外开辟了一个空间用来存储“bb”;同时由str指向
原来的“aa”,现在已经不可达,GC时会自动回收。
因此String作为参数传进来时候,str= “test ok”; 实际给副本引用str指向了新分配的地址,该地址存储“test ok”。
因此,原先的str仍然指向“good”
4.关于抽象类与最终类,下列说法错误的是?
A.抽象类能被继承,最终类只能被实例化。
B.抽象类和最终类都可以被声明使用
C.抽象类中可以没有抽象方法,最终类中可以没有最终方法
D.抽象类和最终类被继承时,方法可以被子类覆盖
正确答案: D 你的答案: B (错误)
解析:最终类就是被final修饰的类,最终方法就是被final修饰的方法。最终类不能被继承,最终方法不能被重写。
5.执行以下程序后的输出结果是()
public class Test {
public static void main(String[] args) {
StringBuffer a = new StringBuffer(“A”);
StringBuffer b = new StringBuffer(“B”);
operator(a, b);
System.out.println(a + “,” + b);
}
public static void operator(StringBuffer x, StringBuffer y) {
x.append(y); y = x;
}
}
A.A,A
B.A,B
C.B,B
D.AB,B
正确答案: D 你的答案: C (错误)
解析:Java参数,不管是原始类型还是引用类型,传递的都是副本(有另外一种说法是传值,但是说传副本更好理解吧,传值通常是相对传址而言)。 如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的传值是一样的。如果在函数中改变了副本的 值不会改变原始的值. 如果参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址。如果在函数中没有改变这个副本的地址,而是改变了地址中的 值,那么在函数内的改变会影响到传入的参数。如果在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传入的参数还是指向原来的 地址,所以不会改变参数的值。
6. 如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? ( )
A.void use() { …}
B.protected void use() { …}
C.public void use() { …}
D.以上语句都可以用在类SmallCup中
正确答案: C 你的答案: B (错误)
解析:既然是实现接口,就要实现接口的所以方法,相当于重写方法,方法的重写需要满足:三同一大一小(方法名、返回值类型、形参相同;访问权限>=重写前;抛出异常<=重写前)
7. Panel 和 Applet 的默认布局管理器是( )
A.CardLayout
B.FlowLayout
C.BorderLayout
D.GridLayout
正确答案: B 你的答案: C (错误)
解析:BorderLayout布局管理器,是Frame默认布局管理器,它是一个布置容器的边框布局,它可以对容器 组件 进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST、CENTER。
FlowLayout流式布局管理器,是Panel和Applet默认布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。
GridLayout布局管理器,GridLayout(int rows,int cols,int hgap,int vgap);建立一个表格的版面对象。rows代表有几行,cols代表有几列;hgap是组件之间的水平距离,vgap是组件之间的竖直距离。
8.对文件名为Test.java的java代码描述正确的是()
class Person {
String name = “No name”;
public Person(String nm) {
name = nm;
}
}
class Employee extends Person {
String empID = “0000”;
public Employee(String id) {
empID = id;
}
}
public class Test {
public static void main(String args[]) {
Employee e = new Employee(“123”);
System.out.println(e.empID);
}
}
A.输出:0000
B.输出:123
C.编译报错
D.输出:No name
正确答案: C 你的答案: B (错误)
解析:父类没有无参的构造函数,所以子类需要在自己的构造函数中显式调用父类的构造函数,
添加
super(“nm”);
否则报错:
Implicit super constructor Person() is undefined. Must explicitly invoke another constructor
9.以下集合对象中哪几个是线程安全的()
A.LinkedList
B.ArrayList
C.Vector
D.Hashtable
正确答案: C D 你的答案: A C (错误)
解析:集合中线程安全的类有:vector,stack,hashtable,enumeration,除此之外均是非线程安全的类与接口
10.What might cause the current thread to stop or pause executing
A.An InterruptedException is thrown.
B.The thread executes a wait() call.
C.The thread constructs a new Thread.
E.A thread of higher priority becomes ready.
D.The thread executes a waitforID()call on a MediaTracker.
正确答案: A B E 你的答案: B D (错误)
解析: 题目:什么操作会使得当前线程停止。
A:一个InterruptedException 异常被捕获 大家都知道的嘛 (一般通过interrupt方法 中断线程) 如果抓到一个线程 都会关紧catch里面 然后中断当前操作,A正确。
B:线程执行了wait()方法。 线程使用了wait方法,会强行打断当前操作,(暂停状态,不会中断线程) 进入阻塞(暂停)状态,然后需要notify方法或notifyAll方法才能进入就绪状态。 B 正确。
C:当前线程创建了一个新的线程。 新创建的线程不会抢占时间片,只有等当前线程把时间片用完,其他线程才有资格拿到时间片去执行。
D:一个高优先级别的线程就绪。 如C相同,你优先级别再高 也待等我现在弄完才会给你。(就像我们玩游戏,会员虽然有排队优先权,但是还是要等正在登陆的用户进去游戏之后才能抢到他原来那个位置,不能说我在过关卡的过程中你一脚把我踢开,然后霸占我的位置吧,我原来的那些数据咋办!!!)
E:线程在MediaTracker上执行了waitforID()调用。
这个应该大家也不太熟悉。这个类是awt里面的,我查API才知道。
然后他的功能是加载图像,直到完成之前,该方法一直等待!这个方法是必须要抛出A选项的InterruptedException 异常的 说明这玩意会让其他线程 wait他完成! 所以会暂停当前线程~~大概是这样吧哈哈哈! E选项我没选对! 这还是真的!。!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值