单选题
1.下面哪个关键字不属于DML?(B)
A.Insert
B.drop
C.update
D.select
2.下列关于锁的相关说法,错误的是?(A)
A.{synchronized (this.getClass())}这种写法是错误的,因为子类继承此方法时不能做到同步.
B.synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放.
C.synchronized既可以加在方法上,也可以加载特定代码块上,而lock需要显示地指定起始位置和终止位置.
D.synchronized是托管给JVM执行的,lock的锁定是通过代码实现的,它有比synchronized更精确的线程语义.
3.下列关于序列化与反序列化的说法,错误的是?(D)
A.serialVersionUID作用:序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
B.Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。
C.如果类的源代码进行了修改,再重新编译,新生成的类文件的默认的seriaIVersionUID的值会发生变化。
D.一个子类实现了Serializable接口,它的父类都没有实现Serializable接口,序列化该子类对象,然后反序列化后输出父类定义的某变量的数值,该变量数值与序列化时的数值也一定相同。
4.下面这段代码输出的结果为?(B)
public static void main(String[] args) {
Integer i1 = 128;
Integer i2 = 128;
System.out.println(i1 == i2);
}
A.true
B.false
5.下面这段代码输出的结果为?(B)
public static void main(String[] args) {
StringBuffer sb1 = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.err.println(sb1.equals(sb2));
}
A.true
B.false
多选题
6.下列关于反射的说法,正确的是?(ABCD)
A.任何继承AccessibleObject的类的对象都可以使用该方法取消Java语言访问权限检査。
B.通过field可以访问给定对象的类变量,包括获取变量的类型、修饰符、注解、变量名、变量的值或者重新设置变量值,即使变量是private的。
C.因为反射是在运行时而不是在编译时,所以不会利用到编译优化,同时因为是动态生成,因此,反射操作的效率要比那些非反射操作低得多。
D.每个class(注意class是小写,代表普通类)类,无论创建多少个实例对象,在JVM中都对应同一个Class对象。
7.下面哪些是消息队列MQ的使用场景?(ABD)
A.异步调用
B.系统解耦
C.降低系统复杂度
D.错峰限流
8.下面哪些情况会导致MySQL索引失效?(ABCDE)
A.索引列参与了运算
B.索引列使用了函数
C.索引列使用了is not null查询
D.索引列存在类型转换
E.模糊查询前面为不确定的匹配字符
9.下列关于MyBatis框架说法,正确的是?(ABCD)
A.${}:仅仅为一个纯碎的String替换,在动态SQL解析阶段将会进行变量替换。
B.使用#可以很大程度上防止sql注入。
C.如果使用在order by中就需要使用$。
D.Mybatis中的CDATA标签指的是不应由XML解析器进行解析的文本数据,所以SQL语句中存在“<”、“&”一般都需要用CDATA标签包住
10.Spring支持的事务功能包括(ABC)
A.事务的传播行为
B.事务回滚
C.事务的隔离级别
D.事务的传播级别
11.下列关于Spring说法,正确的是?(ABD)
A.Spring IOC主要是基于Java的反射机制去实现的
B.@Transactional只能被应用到public方法上
C.AOP增强的方法A,被同一个类中的另一个方法B调用,如果外部调用B,A也会被增强
D.静态属性以及线程类中的属性不能使用@Autowired直接注入
解析:
当方法B在同一个类中调用方法A时,Spring AOP不会生效,因为这是内部调用,不会经过AOP代理。
12.下列关于对象克隆说法,正确的是?(ACD)
A.深克隆:既克隆基本类型变量,也克隆引用类型变量
B.深克隆的方法需要被public修饰
C.Object的clone()方法是在java平台层实现的native方法,且被protected修饰
D.使用序列化能完成深克隆的功能
13.下列哪些操作会使线程释放锁资源?(BC)
A.sleep()
B.wait()
C.join()
D.yield()
14.下列关于IO的相关说法,正确的是?(BCD)
A.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.
B.NIO通讯是将整个任务切换成许多小任务,由一个线程负责处理所有IO事件,并负责分发.
C.JAVA处理大文件,更快的方式是采用MappedByteBuffer.
D.如果你有少量的连接使用非常高的带宽,一次发送大量的数据,用NIO服务器来处理比IO服务器来处理更有优势.