一、选择题
-
在Java类中,使用以下()声明语句来定义公有的int型常量MAX。(单选)
A. public int MAX = 100;
B. final int MAX = 100;
C. public static int MAX = 100;
D. public static final int MAX = 100;
答案:D -
在Java中,下列关于方法重载的说法中错误的是( )。(多选)
A. 方法重载要求方法名称必须相同
B. 重载方法的参数列表必须不一致
C.重载方法的返回类型必须一致
D.一个方法在所属的类中只能被重载一次
答案:CD -
以下代码段将创建几个对象()。
String s1="bc";
String s2="bc";
A. 2
B. 3
C. 0
D. 1
答案:D
解析:
String str1 = "abc ";
String str2 = "abc ";
System.out.println(str1 == str2); //true
1、注意,我们这里并不用str1.equals(str2);的方式,因为这将比较两个字符串的值是否相等。 == 号,根据JDK的说明,只有在两个引用都指向了同一个对象时才返回真值。而我们在这里要看的是,str1与str2是否都指向了同一个对象。
2、结果说明,JVM创建了两个引用str1和str2,但只创建了一个对象,而且两个引用都指向了这个对象。
String str1 = "abc ";
String str2 = new String( "abc ");
System.out.println(str1 == str2); //false
1、创建了两个引用。创建了两个对象。两个引用分别指向不同的两个对象。
2、以上两段代码说明,只要是用new()来新建对象的,都会在堆中创建,而且其字符串是单独存值的,即使与栈中的数据相同,也不会与栈中的数据共享。
数据类型包装类的值不可修改。不仅仅是String类的值不可修改,所有的数据类型包装类都不能更改其内部的值。(StringBuffer 可改变),如:
String s1 = “bc”;
String s2 = s1;
s1 = “de”;
这时输出s2会发现s2仍然等于"bc"
正是String的这个特性,占用太多内存空间,后来才有了StringBuffer/StringBuilder两个类。
4)在Java中,下面对于构造函数的描述正确的是( )。 (单选)
A. 类必须显式定义构造函数
B. 构造函数的返回类型是void
C. 构造函数和类有相同的名称,并且不能带任何参数
D.一个类可以定义多个构造函数
答案:D
5)关于垃圾收集的哪些叙述是对的。
A. 垃圾收集能够在期望的时间释放被java对象使用的内存。
B. 垃圾收集将检查并释放不再使用的内存。
C. 垃圾收集允许程序开发者明确指定并立即释放该内存。
D. 程序开发者必须自己创建一个线程进行内存释放的工作。
答案:B
6)下列选项中关于Java中封装的说法错误的是( )。 (单选)
A. 封装就是将属性私有化,提供公有的方法访问私有属性
B. 属性的访问方法包括setter方法和getter方法
C. setter方法用于赋值、getter方法用于取值
D.类的属性必须进行封装,否则无法通过编译
答案:D
7)使用Java实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是( )。 (单选)
A.使用赋值和取值方法访问属性
B. 编写常规方法访问属性
C.在赋值和取值方法中,加入对属性的存取限制
D. 编写main方法创建对象,调用赋值和取值方法访问属性
答案:C
8)分析如下所示的Java代码,其中this关键字的意思是( )。 (单选)
public class Test {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
A.name属性
B.Test类的内部指代自身的引用
C. Test类的对象引用Test类的其他对象
D. 指所在的方法
答案:B
9)在Java语言中,下列关于类的继承的描述,正确的是( )。 (单选)
A. 一个类可以继承多个父类
B.一个类可以具有多个子类
C. 子类可以使用父类的所有方