1.下列对选择语句描述错误的是
答: 选择语句可以嵌套使用(选择语句不可以嵌套使用,例如 switch case)
2.Java数据库连接JDBC用到哪种设计模式
答: 桥接模式(将抽象部分与它的实现部分分离开来,使他们可以独立变化)
拓展: JDBC连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不要动,原因是JDBC提供了统一接口,每个数据库提供自己的实现即可,用一个叫数据库驱动的程序来连接就行了
3.从以下四个选项中选出不同的一个
答: LVS(Linux虚拟服务器)
4.下列有关Java Obejct的默认的基本方法,说法错误的是
答: copy()方法返回此对象的一个副本(Object没有copy()方法,此处应该说的是clone()方法)
5.以下代码执行结果是多少
public class Demo {
public static void main(String[] args) {
Collection<?>[] collections =
{new HashSet<String>(), new ArrayList<String>(), new HashMap<String, String>().values()};
Super subToSuper = new Sub();
for(Collection<?> collection: collections) {
System.out.println(subToSuper.getType(collection));
}
}
abstract static class Super {
public static String getType(Collection<?> collection) {
return “Super:collection”;
}
public static String getType(List<?> list) {
return “Super:list”;
}
public String getType(ArrayList<?> list) {
return “Super:arrayList”;
}
public static String getType(Set<?> set) {
return “Super:set”;
}
public String getType(HashSet<?> set) {
return “Super:hashSet”;
}
}
static class Sub extends Super {
public static String getType(Collection<?> collection) {
return "Sub"; }
}
}
答: 执行结果为Super:collection Super:collection Super:collection
拓展: 静态方法不会被子类覆盖,调用的仍然是父类中的方法,这就是为什么会输出三次Super:collection
6.关于下面一段代码说法正确的是
public class Test {
private synchronized void a() {
}
private void b() {
synchronized (this) {
}
}
private synchronized static void c() {
}
private void d() {
synchronized (Test.class) {
}
}
}
答: 同一个对象,分别调用方法a和方法b,锁住的是同一个对象
同一个对象,分别调用方法b和方法c,锁住的不是同一个对象
拓展: 调用方法a,b锁住的都是this即该同一对象,调用方法c,因为该方法是静态的,因此锁住的是Test.class,因此,锁住的不是同一个对象
7.JDK提供的用于并发编程的同步器有哪些
答: Semaphore、CyclicBarrier、CountDownLatch