场景:
在练习错题
错题1描述:
下面论述正确的是()?
A.如果两个对象的hashcode相同,那么它们作为同一个HashMap的key时,
必然返回同样的值
B.如果a,b的hashcode相同,那么a.equals(b)必须返回true
C.对于一个类,其所有对象的hashcode必须不同
D.如果a.equals(b)返回true,那么a,b两个对象的hashcode必须相同
原因分析:
答案::D
错题2描述:
以下代码将打印出
public static void main (String[] args) {
String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";
System.out.println(classFile);
}
选项
A.com. jd
B.com/jd/MyClass.class
C.///MyClass.class
D.com.jd.MyClass
原因分析:
由于replaceAll方法的第一个参数是一个正则表达式,
而".“在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成”/"。如果想替换的只是".",那么久要写成"\.".
答案:C
错题3描述:
以下哪些类是线程安全的()
public static void main (String[] args) {
String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";
System.out.println(classFile);
}
选项
A.Vector
B.HashMap
C.ArrayList
D.StringBuffer
E.Properties
原因分析:
.
A,Vector相当于一个线程安全的List
B,HashMap是非线程安全的,其对应的线程安全类是HashTable
C,Arraylist是非线程安全的,其对应的线程安全类是Vector
D,StringBuffer是线程安全的,相当于一个线程安全的StringBuilder
E,Properties实现了Map接口,是线程安全的
答案:A D E