1、下面代码将输出什么内容:()
public class SystemUtil{
public static boolean isAdmin(String userId){
return userId.toLowerCase()=="admin";
}
public static void main(String[] args){
System.out.println(isAdmin("Admin"));
}
}
A.true
B.false
C.1
D.编译错误
我的答案: A
正确答案: B
解析: 执行 toLowerCase() 时候会新 new 一个 String 类型的引用, 存放转换成小写的字符串的地址,
"=="是比较两个字符串的地址,所以输出 false
2、可以把List< String>传递给一个接受List< Object>参数的方法
我的答案: 正确
正确答案: 错误
解析: 这种转换在父类与子类的继承关系中是可行的,但是List< Sting>和 List<
Object>在编译器看来是两种完全不同的东西
3、Java的泛型是JDK1.5引入的一个新特性,它提供了编译期的类型安全监测机制。 现定义如下程序:
public class T {}
public class A extends T{}
public class B extends A{}
public class Test {
public static void main(String[] args){
List<Class<? extends T>> list = new ArrayList<>();
}
}
请问下面选项中哪个类的class能够被存储到 list 对象中()
A.只有A.class
B.只有B.class
C.A.class和B.class
D.A.class,B.class和T.class
我的答案 : D
解析:<? extends E> 是 Upper Bound (上限)的通配符, 用来限制元素的上限. 即只能是这个E本身或者其子类
<? super