单选题
1.在数据库中,下列哪种范式要求非主属性必须直接依赖于候选键,而不是传递依赖:( C )
A.第—范式
B.第二范式
C.第三范式
D.BCNF
2.下列哪种数据结构适合用于实现LRU算法:( C )
A.栈
B.队列
C.双向链表+哈希表
D.二叉树
3.如下代码结果是(B)
java">public class Main {public static void main(String[] args) {String sl = new String("1") + new String("1");String s2 = "11";String s3 = s2.intern();System.out.println(sl == s2);System.out.println(sl == s3);System.out.println(s2 == s3);}
}
A.true true false
B.false false true
C.false false false
D.true true true
解析:
intern()方法的作用是将字符串对象显式地放入到字符串常量池中,并返回常量池中该字符串的引用。如果常量池中已经存在该字符串,则返回常量池中的引用;否则,将该字符串添加到常量池中,并返回该字符串在常量池中的引用。
4.在数据库索引中,B+树相对于B树的最主要优势是什么?( C )
A.更快地进行搜索操作
B.更适合大规模数据存储
C.更少的磁盘I/O操作
D.更容易实现平衡性
5.下列哪个关键字用于声明一个变量不会被序列化( D )
A.final
B.static
C.volatile
D.transient
6. 如下代码结果是(B)
java">public class Main {static int x = 10;public static void main(String[] args) {new Main(5);System.out.println(x);}Main(int x) {this.x = x;new Main();}Main() {x++;}
}
A.5
B.6
C.10
D.11
7.如下代码结果是:(A)
java">class Box<t>{private T t;public void set(T t){this.t = t;}public T get(){return t;}
}public class Main{public static <u extends number> void inspect(U u){System.out.println("T: "+u.getClass().getName());}public static void main(String[] args){Box<float> floatBox = new Box<float>();floatBox.set(new Float(10.0f));inspect(floatBox.get());}
}
A. T : java.lang.Float
B. T : java.lang.Number
C. 抛出异常
8. 如下代码打印输出的值为( B )
java">public class Main {public static void main(String[] args) {int i = 0;while (i++ < 5) {System.out.print(i + " ");}}
}
A.0 1 2 3 4
B.1 2 3 4 5
C.1 2 3 4 5 6
D.1 2 3 4
9.如下代码结果是:( C )
java">class Parent{public void print(){System.out.println("Parent");}
}class Child extends Parent{public void print(){System.out.println("Child");}
}public class Main{public static void main(String[] args){Parent p = new Parent();((Child)p).print();}
}
A.Parent
B.Child
C.抛出异常
解析:
当尝试执行强制类型转换((Child) p)时,会抛出一个ClassCastException,因为p不是一个Child类型的实例。
10.如下代码结果是:(A)
java">
public class Main{public static void main(String[] args){Thread t1 = new Thread(()->{synchronized(Main.class){System.out.println("Hello");try{Main.class.wait();}catch (InterruptedException e){e.printStackTrace();}}});Thread t2 = new Thread(()->{synchronized(Main.class){Main.class.notify();System.out.println("World");}});t1.start();t2.start();}
}
A.Hello World
B.World Hello
C.无法确定
D.抛出异常
多选题
1. 如果一个JAVA类中已经定义了int sum(int a, int b)方法,下列哪个方法与之构成方法重载?(BC)
A.int sum(int x, int y)
B.int sum(int a, int b, int c)
C.int sum(double a, double b)
D.long sum(int a, int b)
解析:
方法的返回类型和参数名称不影响方法重载。仅通过修改返回类型或参数名称,不能实现方法重载。
2. 以下哪些选项中的子类方法违反了方法覆盖的规则?(AB)
A.
java">class Parent{public void process() throws IOException{}
}
class Child extends Parent{public void process() throws Exception{}
}
B.
java">public class Base{public void method(){}
}public class Sub extends Base{private void method(){}
}
C.
java">class Parent{public static void staticMethod(){System.out.println("Parent's static method");}
}class Child extends Parent{public static void staticMethod(){System.out.println("Child's static method");}
}
D.
java">public abstract class Base{abstract void method1();abstract void method2();
}public abstract class Sub extends Base{public void method1(){...}public abstract void method2();
}
解析:
A违反了子类方法抛出的异常类型必须是父类方法抛出的异常类型的子类型或相同类型。B违反了子类方法的访问修饰符必须大于等于父类方法的访问修饰符。
3.JAVA语言中,以下哪些类或方式可以用于实现线程间的通信?(ABC)
A. wait()和notify(方法
B. BlockingQueue
C. CountDownLatch
D. ThreadLocal
解析:
ThreadLocal 提供线程本地变量,不能用于线程间通信,而是用于线程内部的数据隔离。
4.关于数据库锁机制,下列哪些说法是正确的?(BCD)
A.排他锁(Exclusive Lock)允许多个事务同时读取同一资源,但不允许写入。
B.共享锁(Shared Lock)允许多个事务同时读取同一资源,但不允许修改。
C.死锁(Deadlock)发生时,两个或多个事务互相等待对方持有的锁释放。
D.乐观锁(Optimistic Locking)假设并发冲突很少发生,并在提交前检查冲突。
解析:排他锁不允许其他事务同时读取或写入同一资源。
5.在JAVA语言中,下列哪种方式会显式创建对象?(ABC)
A.clone
B.反序列化
C.反射
D.JVM虚拟机加载类
解析:
类的加载是指JVM将类的字节码加载到内存中,并解析类的结构,为类的使用做准备。这个过程并不涉及对象的创建,只是类的初始化。