Java 小题 2
A. 接口与抽象类是相同的概念
B. 若要实现一个接口为普通类则必须实现接口的所有抽象方法
C. 接口之间不能有继承关系
D. 一个类只能实现一个接口
正确答案:B
public static void main(String args[]) {
List Listlist1 = new ArrayList();
Listlist1.add(0);
List Listlist2 = Listlist1;
System.out.println(Listlist1.get(0) instanceof Integer);
System.out.println(Listlist2.get(0) instanceof Integer);
}
A. 编译错误
B. true true
C. true false
D. false false
正确答案:B
官方解析:
JDK5之后提供的自动拆箱和自动装箱实现了将基本数据类型存入collection类型的集合(ArrayList,LinkedList)。例如题目中向ArrayList存入了基本类型0,int类型会自动装箱变为Integer类型存入集合中,使编译正常通过。
将list1的引用赋值给了list2,那么list1和list2都将指向同一个堆内存空间。instanceof关键字在Java中用于判断一个对象是否属于某个特定类的实例,并且返回boolean类型的返回值。显然,list1.get(0)和list2.get(0)都属于Integer的实例。答案选择B。
A. final i;
B. static int i;
C. static final int i=234;
D. final float i=3.14f;
正确答案:C
参考答案:C java中final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。int关键字修饰整型类型。static修饰静态变量,即当利用这个关键字来修饰一个变量的时候,在创建对象之前就会为这个变量在内存中创建一个存储空间。以后创建对对象如果需要用到这个静态变量,那么就会共享这一个变量的存储空间。 A:缺少必要的整型类型声明 B:缺少常量关键字final D:定义一个浮点常量
A. private final static int answer = 42;
B. public static int answer = 42;
C. final static answer = 42;
D. int answer;
正确答案:B
接口中的属性在不提供修饰符修饰的情况下,会自动加上public static final
注意(在1.8的编译器下可试):
(1)属性不能用private,protected,default 修饰,因为默认是public
(2)如果属性是基本数据类型,需要赋初始值,若是引用类型,也需要初始化,因为默认有final修饰,必须赋初始值;
(3)接口中常规的来说不能够定义方法体,所以无法通过get和set方法获取属性值,所以属性不属于对象,属于类(接口),因为默认使用static修饰。
大家好,我是xwhking,一名技术爱好者,目前正在全力学习 Java,前端也会一点,如果你有任何疑问请你评论,或者可以加我QQ(2837468248)说明来意!希望能够与你共同进步