牛客网第八天

1.提供Java存取数据库能力的包是( )
A.java.sql
B.java.awt
C.java.lang
D.java.swing
正确答案: A 你的答案: A (正确)
解析:
A,java.sql包提供Java存取数据库能力
B,java.awt包是java图形界面的包
C,java.lang是java语言的核心好,lang是language的简写
D,java.swing是经过java封装的与操作系统无关的图形界面包
2.下面对JVM叙述不正确的是:
A.JVM的全称是Java Virtual Machine
B.JVM是一种计算机硬件技术,它是Java程序的运行平台
C.JVM是在计算机硬件系统上用软件实现的一台假想机
D.Java程序在执行时.JVM把Java字节码解释成机器码
正确答案: B 你的答案: B (正确)
JVM是Java Virtual Machine(Java 虚拟机 )的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
简单来看,虚拟机本质就是一个进程。模拟平台操作的一个进程。
3.下列关于构造函数的描述中,错误的是()
A.构造函数可以设置默认的参数
B.构造函数在定义类对象时自动执行
C.构造函数可以是内联函数
D.构造函数不可以重载
正确答案: D 你的答案: B (错误)
所谓内联函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,参数压栈,返回时参数出栈以及资源释放等,这样提高了程序执行速度。 对应Java语言中也有一个关键字final来指明那个函数是内联的。 内联不一定好,当被指定为内联的方法体很大时,展开的开销可能就已经超过了普通函数调用调用的时间,引入了内联反而降低了性能,因为在选择这个关键字应该慎重些,不过,在以后高版本的JVM中,在处理内联时做出了优化,它会根据方法的规模来确定是否展开调用。”
构造函数显然是可以重载的。
4.在面向对象编程里,经常使用is-a来说明对象之间的继承关系,下列对象中不具备继承关系的是?()
A.手机与小米手机
B.企业家与雷军
C.编程语言与Java
D.中国与北京
正确答案: D 你的答案: D (正确)
解析:北京是中国的一个城市并没有继承中国的什么特性。
5. 下面的程序输出的结果是( )
public class A implements B{
public static void main(String args[]){
int i;
A a1=new A();
i =a1.k;
System.out.println(“i=”+i);
}
}
interface B{

int k=10;

}
A.i=0
B.i=10
C.程序有编译错误
D.i=true
正确答案: B 你的答案: D (错误)
解析:
在接口里面的变量默认都是public static final 的,它们是公共的,静态的,最终的常量.相当于全局常量,可以直接省略修饰符。
实现类可以直接访问接口中的变量
6.Java 的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。
A.正确
B.错误
正确答案: B 你的答案: B (正确)
解析:容器的左上角被确定为坐标的起点。
7. 以下代码执行的结果显示是多少()?
public class Demo{
public static void main(String[] args){
System.out.print(getNumber(0));
System.out.print(getNumber(1));
System.out.print(getNumber(2));
System.out.print(getNumber(4));
}

public static int getNumber(int num){
    try{
        int result = 2 / num;
        return result;
    }catch (Exception exception){
        return 0;
    }finally{
        if(num == 0){
            return -1;
        }
        if(num == 1){
            return 1;
        }
    }
}

}
A.0110
B.-1110
C.0211
D.-1211
正确答案: B 你的答案: B (正确)
解析:finally一定会在return之前执行,但是如果finally使用了return或者throw语句,将会使trycatch中的return或者throw失效
try,catch,finally中:
num=0,捕获异常,执行catch语句,catch中返回0,执行finally语句,finally语句中返回-1,于是返回finally中的-1;
num=1,try中返回2,执行finally语句,finally语句中返回1,于是返回finally中的1;
num=2,try中返回1,执行finally语句,finally语句中没有返回,于是返回try中的1;
num=4,try中返回0,执行finally语句,finally语句中没有返回,于是返回try中的0.
8. 关于继承和实现说法正确的 是 ? ( )
A.类可以实现多个接口,接口可以继承(或扩展)多个接口
B.类可以实现多个接口,接口不能继承(或扩展)多个接口
C.类和接口都可以实现多个接口
D.类和接口都不可以实现多个接口
正确答案: A 你的答案: B (错误)
解析:1.类与类之间的关系为继承,只能单继承,但可以多层继承。 2.类与接口之间的关系为实现,既可以单实现,也可以多实现。 3.接口与接口之间的关系为继承,既可以单继承,也可以多继承。 故为A
9.假设如下代码中,若t1线程在t2线程启动之前已经完成启动。代码的输出是()
public static void main(String[]args)throws Exception {
final Object obj = new Object();
Thread t1 = new Thread() {
public void run() {
synchronized (obj) {
try {
obj.wait();
System.out.println(“Thread 1 wake up.”);
} catch (InterruptedException e) {
}
}
}
};
t1.start();
Thread.sleep(1000);//We assume thread 1 must start up within 1 sec.
Thread t2 = new Thread() {
public void run() {
synchronized (obj) {
obj.notifyAll();
System.out.println(“Thread 2 sent notify.”);
}
}
};
t2.start();
}
A.Thread 1 wake up
Thread 2 sent notify.

B.Thread 2 sent notify.
Thread 1 wake up
C.A、B皆有可能
D.程序无输出卡死
正确答案: B 你的答案: B (正确)
解析:执行obj.wait();时已释放了锁,所以t2可以再次获得锁,然后发消息通知t1执行,但这时t2还没有释放锁,所以肯定是执行t2,然后释放锁,之后t1才有机会执行。
10.Integer i = 42;
Long l = 42l;
Double d = 42.0;
下面为true的是
A.(i == l)
B.(i == d)
C.(l == d)
D.i.equals(d)
E.d.equals(l)
F.i.equals(l)
G.l.equals(42L)
解析:
ABC3 个选项很明显,不同类型引用的 == 比较,会出现编译错误,不能比较。

DEF 调用 equals 方法,因为此方法先是比较类型,而 i , d , l 是不同的类型,所以返回假。

选项 G ,会自动装箱,将 42L 装箱成 Long 类型,所以调用 equals 方法时,类型相同,且值也相同,因此返回真。

猜你喜欢

转载自blog.csdn.net/pingbu_qingyun/article/details/83275228