在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. 子类可以使用父类的所有方法 //私有方法不行
D. 子类一定比父类有更多的成员方法
答案:B
10)执行下面代码,下面描述正确的是()
public class Person{
static int arr[] = new int[10];
public static void main(String a[]){
System.out.println(arr[1]);
}
}
A. 产生编译错误
B. 输出空
C. 编译正确,运行错误
D. 输出0
答案:D
11)下列选项中关于Java中super关键字的说法错误的是( )。(单选)
A. super关键字是在子类对象内部指代其父类对象的引用
B.super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C. 子类可以通过super关键字调用父类的方法
D. 子类可以通过super关键字调用父类的属性
答案:B
12)以下创建了几个对象
String A,B,C
A="a";
B="b":
A=A+B;
StringBuffer D=new StringBuffer("abc");
D=D.append("567");
A. 6
B. 4
C. 3
D. 5
答案:B
13)以下关于Object类说法错误的是( )。(单选)
A. 一切类都直接或间接继承自Object类
B. 接口亦继承Object类
C. Object类中定义了toString()方法
D. Object类在java.lang包中
答案:B
14)给定Java代码如下所示,则编译运行后,输出结果是( )。(单选)
class Parent {
public void count() {
System.out.println(10%3);
}
}
public class Child extends Parent{
public void count() {
System.out.println(10/3);
}
public static void main(String args[]) {
Parent p = new Child();
p.count();
}
}
A. 1
B. 1.0
C.3
D. 3.3333333333333335
答案:C
15)分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在横线处应填入( )。(多选)
class A {
public void test() {
System.out.println("A类的test()方法");
}
}
class B extends A {
public void test() {
System.out.println("B类的test()方法");
}
public static void main(String args[]) {
________________
}
}
A.A a = new B();
a.test();
B. A a = new A();
a.test();
C. B b = new A();
b.test();
D.B b = new B();
b.test();
答案:AD
16)下面关于Java接口的说法错误的是( )。(单选)
A. 一个Java接口是一些方法特征的集合,但没有方法的实现
B. Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为
C.Java接口中可以声明私有成员
D. Java接口不能被实例化
答案:C
接口中的所有成员变量默认为public static final,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的.
接口中的所有方法都是public abstract 公开抽象的,而且不能有构造方法。
17)给定如下Java程序代码,在横线处加入( )语句,可以使这段代码编译通过。(多选)
interface Parent{
public int count(int i);
}
public class Test implements Parent {
public int count(int i){
return i % 9;
}
public static void main(String[] args){
________________
int i = p.count(20);
}
}
A.Test p = new Test();
B.Parent p = new Test();AB
C.Parent p = new Parent();
D. Test p = new Parent();
答案:AB
18、设 String s = “story”; 下列选项中的语句书写正确的是( )。
A. s += “books”;
B. char c = s[1];
C. int len = s .length;
D. s = s - “books”;
答案:A
length()是求String字符串对象中字符的个数,而length是求字符串数组中有多少个字符串。
19、三种字符串判空串方法:
1: bool isEmpty = (str.Length == 0);
2: bool isEmpty = (str == String.Empty);
3: bool isEmpty = (str == “”);
哪种方法正确?()。(选择一项)
A. 1 B. 2 C. 3
答案:C
20、下列说法正确的是()。 (多选)
A. Java语言只允许单一继承
B. Java语言只允许实现一个接口
C. Java语言不允许同时继承一个类并实现一个接口
D. Java语言的单一继承使得代码更加可靠.
答案:AD
21、下面程序的运行结果是()。 (单选)
class A{
static{
System.out.print("a");
}
public A (){
System.out.print("x");
}
}
class B extends A{
static{
System.out.print("b");
}
public B (){
System.out.print("y");
}
}
public class Test{
public static void main(String[] args){
A ab = new B ();
ab = new B ();
}
}
A、abxyxy
B、axxybx
C、abyxyx
D、xyxyab
答案:A
22、在类的定义中可以有两个同名函数,这种现象称为函数( )。
(A)封装 (B)继承
(C)覆盖 (D)重载
答案:D
23、在类的定义中构造函数的作用是( )。
(A)保护成员变量 (B)读取类的成员变量
(C)描述类的特征 (D)初始化成员变量
答案:D
24、下面哪一个是Java中不合法的标识符( )。
(A)$ persons (B)twoNum
(C)_myVar (D)*point
答案:D
1、首字母是英文字母、$和下划线,由字母、数字和下划线组成。
2、用驼峰命名法命名多个单词组成的变量名。 [比如: setAge ]
3、变量名不要使用Java关键字
25、下面非法的是()。 (多选)
(A) int I = 32; (B) float f = 45.0;
© double d = 45.0; (D) char c = ‘u’;
答案:BD
26、下面关于缺省构造方法的描述中正确的是( )
A. 当类中没有定义任何构造方法时,Java编译器将为这个类创建缺省构造方法
B. 缺省构造方法可以初始化其他方法中定义的变量
C. Java编译器会为所有的类创建缺省构造方法。
D. 如果在一个类中定义的构造方法都声明了参数,Java编译器将为这个类创建一个缺省构造方法
答案:A
27、下列类定义中哪些是合法的抽象类的定义?( )
A、abstract Animal{abstract void growl();}
B、class abstract Animal{abstract void growl();}
C、abstract class Animal{abstract void growl();}
D、abstract class Animal{abstract void growl(){System.out.println(“growl”);};}
答案:C
28、覆盖与重载的关系是 ( )
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
答案:A
29、不允许作为类及类成员的访问控制符的是( )。
A. public B. private
C. static D. protected
答案:C
30、关于选择结构下列哪个说法正确? ( )
A.if语句和 else语句必须成对出现
B.if语句可以没有else语句对应
C.switch结构中每个case语句中必须用break语句
D.switch结构中必须有default语句
答案:B
、