题库-JAVASE02

对象和类

关于instanceof的描述错误的是( )
A.instanceof是Java中的二元运算符
B.左边是对象,右边是类
C.当对象是右边类或子类所创建对象时,返回true;否则,返回false
D.instanceof左边显式声明的类型与右边对象不能是同种类或存在继承关系

【正确答案】D
【答案解析】instanceof左边显式声明的类型与右边对象必须是同种类或存在继承关系

下面程序段输出的结果是()     
String s=“ABCD”;
s.concat(“E”);
s.replace(“C”,“F”);
System.out.println(s);
A.ABCDEF
B.ABFDE
C.ABCDE
D.ABCD

【正确答案】D
【答案解析】concat()和replace()不会改变原有的值,只会新增一个副本所以s的值不变

对象的特征在类中表示为变量,称为类的( )
A.对象
B.属性
C.方法
D.数据类型

【正确答案】B
【答案解析】对象的特征就是类的属性

(单选题)MAX_LENGTH是int型public成员变量,变量值保持为常量100,用简短语句定义这个变量( )
A.public int MAX_LENGTH=100;
B.final int MAX_LENGTH=100;
C.final private int MAX_LENGTH=100;
D.public final int MAX_LENGTH=100;

【正确答案】D
【答案解析】常量是public final修饰的

安装JDK后,我们要配置JAVA_HOME,以下路径最可能是正确的是()
A.D:\JDK1.8\jdk1.8.0_45
B.D:\JDK1.8 \jdk1.8.0_45
C.D:\JDK1.8\jdk1.8.0_45\bin
D.D:\JDK1.8包\jdk1.8.0_45

【正确答案】A
【答案解析】JAVA_HOME的路径不能包含中文,空格,并且不能处于bin的文件夹下,所以A最可能正确

(单选题)下列关于修饰符混用的说法,错误的是( )
A.abstract 不能与 final 并列修饰同一个类
B.abstract 类中可以有 private 的成员
C.abstract 方法可以放在 abstract 类或接口中
D.static 方法中能直接使用非 static 的属性

【正确答案】D
【答案解析】静态方法中不能引用其外部的非静态成员

关于继承的描述错误的是( )
A.继承的作用是代码重用、复用
B.不继承构造方法和私有(private)成员
C.一个子类,只能继承一个父类
D.一个父类,只有一个子类

【正确答案】D
【答案解析】D选项一个父类,可以有多个子类

关于多态的说法,错误的是( )
A.所有子类型对象,都可以被当做一致的父类型来处理
B.多态转型本质是引用变量的类型转换,对象本身不变
C.向上转型是父类型对象,转型成子类型
D.向下转型已经转成父类型的子类对象,再转回成子类型

【正确答案】C
【答案解析】向上转型是子类型对象,转型成父类型

super与this的区别错误( )
A.this是属性,super是指向本对象的指针
B.super()、this()都必须出现在构造函数的第一行,且不能同时出现,因为this()中已经默认调用了父类的super()。
C.this出现在同类中,指代本类本对象;super出现在子类中,指代父类及父类的对象,且他们都指代对象,所以不能与static修饰符一起使用
D.this()中会默认调用父类的super()

【正确答案】A
【答案解析】this是指向本对象的指针,this和super是关键字

假设a=1,b=2,将a和b的值做交换,用变量交换的思想,以下选项可以实现的是( )
A.int t=a;
a=b;
b=t;
B.int t=b;
a=b;
b=t;
C.int t=a;
b=a;
b=t;
D.int t=a;
a=b;
t=b;

【正确答案】A
【答案解析】A选项可以实现ab值的互换,为三步转圈赋值方法,BCD选项ab的值最后一样了

(多选题)请问,以下哪些描述是正确的?
A.如果package语句存在,则必须出现在源文件的非空白首行。
B.如果import语句存在,则必须出现在源文件的非空白首行。
C.如果main()方法存在,则必须出现在源文件的非空白首行。
D.如果在源文件中声明了一个public接口,则其名称必须和源文件名一致。

【正确答案】A,D
【答案解析】B选项import是写在package下 C选项main方法可以放在类里任意一个地方。

(多选题)执行下列代码后,哪个结论是正确的( )
String[] s=new String[10];
A.s[9]为null;
B.s[10]为"";
C.s[0]为未定义
D.s.length为10

【正确答案】A,D
【答案解析】s 是引用类型,s 中的每一个成员都是引用类型,即 String 类型,String 类型默认的值为 null,s 数组的长度为
10。

打印1到10的for循环语句正确的是( )
A.for(int i=1; i<=11; i++) {
System.out.println(i);
}
B.for(int i=1; i<10; i++) {
System.out.println(i);
}
C.for(int i=1; i<=10; i++) {
System.out.println(i);
}
D.for(int i=1; i<11; i++) {
System.out.println(i);
}

【正确答案】C,D
【答案解析】A选项是打印1到11,B选项是打印1-9;

(多选题)给出下面的代码片段:
public class Base {
int w, x, y, z;
public Base(int a, int b) {
x=a; y=b;
}
public Base(int a, int b, int c, int d) {
//assignment x=a, y=b
w=d; z=c;
}
}
在代码说明//assignment x=a, y=b处写下如下哪几个代码是正确的( )
A.Base(a, b);
B.x=a, y=b;
C.x=a; y=b;
D.this(a, b);

【正确答案】C,D
【答案解析】C 是直接给 x,y 赋值;D 是使用 this 调用本类中其它的构造方法。

(多选题)下面关于变量及其范围的陈述哪些是不正确的( )
A.类中的普通属性是类的实例变量
B.实例变量用关键字static声明
C.局部变量在局部范围外也可以被使用
D.局部变量在使用前必须被初始化

【正确答案】B,C
【答案解析】由static修饰的变量称为类变量或是静态变量,局部变量作用域只在局部范围内部。

下面有关java的instanceof、?、&、&&说法正确的有?
A.instanceof 可用来判断某个实例变量是否属于某种类的类型。
B."?:" 三目运算符
C.&在逻辑运算中是非短路逻辑与,在位运算中是按位与
D.&& 逻辑运算:逻辑与

【正确答案】A,B,C,D
【答案解析】指定了数组的数据类型之后,就只能对数组赋值相同数据类型的数据

(多选题) 下列变量命名哪个是合法的()
A.class
B.$abc
C.1234
D._name

【正确答案】B,D
【答案解析】class是java中的关键字,java中对象的命名不能是全数字

(多选题)下面选项中哪两个可以在 A 的子类中使用( )
class A {
protected int method1 (int a, int b) {
return 0;
}
}
A.public int method1(int a, int b) { return 0; }
B.private int method1(int a, int b) { return 0; }
C.private int method1(int a, long b) { return 0; }
D.public short method1(int a, int b) { return 0; }

【正确答案】A,C
【答案解析】B子类重写父类的方法,访问权限不能降低;C属于重载;D子类重写父类的方法如果返回值类型是基本类型的话,要求相同。

(多选题)已知下列选项中的方法是在某个类中定义的,现在子类中不可以定义与下列选项中方法签名相同的方法的选项是( )
A.final void methoda() {}
B.void methoda() {}
C.static void methoda() {}
D.static final void methoda() {}

【正确答案】A,D
【答案解析】final 修饰方法,在子类中不能被重写。

(多选题)如下哪些不是 java 的关键字( )
A.const
B.sum
C.num
D.this

【正确答案】B,C
【答案解析】java中,num,sum都不属于java 的关键字.

对象内存管理

关于引用的描述错误的是( )
A.引用的是对象具体代码
B.引用的是保存对象的内存地址
C.理解成“遥控器”
D.引用变量的特殊值:null,代表不保存任何对象的地址

【正确答案】A
【答案解析】A选项引用的是保存对象的内存地址

关于抽象类和抽象方法的描述错误的是( )
A.抽象类是半成品类、没有完成的类
B.抽象方法是只有方法的定义,没有方法代码
C.抽象类能创建对象
D.public abstract void f();定义了一个抽象方法

【正确答案】C
【答案解析】抽象类不能创建对象

关于继承的描述错误的是( )
A.继承的作用是代码重用、复用
B.不继承构造方法和私有(private)成员
C.一个子类,只能继承一个父类
D.一个父类,只有一个子类

【正确答案】D
【答案解析】D选项一个父类,可以有多个子类

关于多态的说法,错误的是( )
A.所有子类型对象,都可以被当做一致的父类型来处理
B.多态转型本质是引用变量的类型转换,对象本身不变
C.向上转型是父类型对象,转型成子类型
D.向下转型已经转成父类型的子类对象,再转回成子类型

【正确答案】C
【答案解析】向上转型是子类型对象,转型成父类型

Java语言的类间的继承关系是( )
A.多重的
B.单重的
C.线程的
D.不能继承

【正确答案】B
【答案解析】java支持单重的

下列关于修饰符混用的说法,错误的是( )
A.abstract不能与final并列修饰同一个类
B.abstract类中可以有private的成员
C.abstract方法必须在abstract类中
D.static方法中能处理非static的属性

【正确答案】D
【答案解析】static方法中不能处理非static的属性!!!静态属于类,加载的比非静态要早

下列说法不正确的是( )?
A.final修饰的方法,只能重载不能重写
B.static修饰的方法,可以直接通过类名.方法名进行调用
C.构造方法可以被重载,不能被重写
D.final修饰的类,可以被继承

【正确答案】D
【答案解析】final修饰的常量不可变,修饰的方法不可被重写,修饰的类不可被继承

下面哪条语句把方法声明为抽象的公共方法?
A.public abstract method();
B.public abstract void method();
C.public abstract void method(){}
D.public void method() extends abstract;

【正确答案】B
【答案解析】A选项缺少返回值,C选项多了方法体,D选项继承抽象关键字错误

关于实例方法和类方法,以下描述正确的是:( )
A.实例方法只能访问实例变量
B.类方法既可以访问类变量,也可以访问实例变量
C.类方法只能通过类名来调用
D.实例方法只能通过对象来调用

【正确答案】D
【答案解析】A实例方法可以访问类变量B类方法只能访问类变量C类方法可以通过对象调用

逻辑与(短路与)可以用以下哪个符号表示()
A.&
B.||
C.&&
D.|

【正确答案】C
【答案解析】&代表and,|代表or,||代表逻辑或(短路或),&&代表逻辑与(短路与)

多选题
打印1到10的for循环语句正确的是( )
A.for(int i=1; i<=11; i++) {
System.out.println(i);
}
B.for(int i=1; i<10; i++) {
System.out.println(i);
}
C.for(int i=1; i<=10; i++) {
System.out.println(i);
}
D.for(int i=1; i<11; i++) {
System.out.println(i);
}

【正确答案】C,D
【答案解析】A选项是打印1到11,B选项是打印1-9;

关于实例方法和类方法,以下描述正确的是( )
A.实例方法也可访问静态变量
B.类方法既可以访问类变量,也可以访问实例变量
C.类方法只能通过类名来调用
D.实例方法只能通过对象来调用

【正确答案】A,D
【答案解析】静态方法中只能使用静态变量,类方法也能用对象调用

(多选题)面向对象的主要特征有哪些()
A.封装
B.多态
C.继承
D.抽象

【正确答案】A,B,C
【答案解析】面向对象的三大主要特征是:封装,多态,继承

下面有关java的instanceof、?、&、&&说法正确的有?
A.instanceof 可用来判断某个实例变量是否属于某种类的类型。
B."?:" 三目运算符
C.&在逻辑运算中是非短路逻辑与,在位运算中是按位与
D.&& 逻辑运算:逻辑与

【正确答案】A,B,C,D
【答案解析】指定了数组的数据类型之后,就只能对数组赋值相同数据类型的数据

下面关于数组的说法中,错误的是( )
A.在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空
B.数组可以在内存空间连续存储任意一组数据
C.数组必须先声明,然后才能使用
D.数组本身是一个对象

【正确答案】A,B
【答案解析】A值为0,B指定了数组的数据类型之后,就只能对数组赋值相同数据类型的数据;

下列说法不正确的是( )
A.final饰的方法,不能重载
B.普通可以通过类名.方法名进行调用
C.构造方法可以被重载,不能被重写
D.static修饰的类可以被继承

【正确答案】A,B
【答案解析】final修饰的方法不能重写,普通方法需要创建对象才能调用

在Java中,下面对于构造函数的描述错误的是( )
A.类不一定要显式定义构造函数
B.构造函数的返回类型是void
C.如果构造函数不带任何参数,那么构造函数的名称和类名可以不同
D.一个类可以定义多个构造函数

【正确答案】B,C
【答案解析】B构造函数的名字与类的名字相同,并且不能有返回类型;C构造函数的名字与类的名字必须相同

继承

关于继承的描述错误的是( )
A.继承的作用是代码重用、复用
B.不继承构造方法和私有(private)成员
C.一个子类,只能继承一个父类
D.一个父类,只有一个子类

【正确答案】D
【答案解析】D选项一个父类,可以有多个子类

以下关于while和do-while的叙述,错误的是( )
A.while语句是先判断再执行
B.do-while语句是先执行再判断
C.do-while语句是至少执行一次
D.while语句至少执行一次

【正确答案】D
【答案解析】while语句不符合条件不执行

(单选题)在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种特性称为 ( )
A.隐藏
B.覆盖
C.重载
D.Java不支持此特性

【正确答案】C
【答案解析】重载,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。

若有定义:int a[][]={{1,2},{0},{1,2,3}};则a[1][0]的值为( )
A.0
B.{1,2}
C.1
D.3

【正确答案】A
【答案解析】a[1][0]是代表外围位置为1的数组的0位置的值

遍历数组的方式正确的语句( )
A.for(int i=1; i<a.length; i++) {
a[i]
}
B.for(int i=0; i<a.length-1; i++) {
a[i]
}
C.for(int i=0; i<=a.length; i++) {
a[i]
}
D.for(int i=0; i<a.length; i++) {
a[i]
}

【正确答案】D
【答案解析】A选项是从下标位置为1处开始遍历,数组下标初始位置为0,所以错误,BC选项由于数组的最大长度是a.length-1,所以BC错误

下面程序段输出的结果是()     
String s=“ABCD”;
s.concat(“E”);
s.replace(“C”,“F”);
System.out.println(s);
A.ABCDEF
B.ABFDE
C.ABCDE
D.ABCD

【正确答案】D
【答案解析】concat()和replace()不会改变原有的值,只会新增一个副本所以s的值不变

在Java中,关于构造方法,下列说法错误的是( )
A.构造方法的名称必须与类名相同
B.构造方法可以带参数
C.构造方法不可以重载
D.构造方法绝对不能有返回值

【正确答案】C
【答案解析】构造方法可以重载

分析选项中关于Java中this关键字的说法正确的是( )
A.this关键字是在对象内部指代自身的引用
B.this关键字可以在类中的任何位置使用
C.this关键字和类关联,而不是和特定的对象关联
D.同一个类的不同对象共用一个this

【正确答案】A
【答案解析】B选项并不可在类里置使用C选项this并不是和类型关联,D选项不同对象并不共用一个this

定义变量b:boolean b=true;则String.valueOf(b)输出的类型是( )
A.boolean
B.String
C.FALSE
D.int

【正确答案】B
【答案解析】此题返回值为true,是个字符串,所以String.valueOf(b)的类型是String类型

关于方法的返回值的说法,正确的是( )
A.一个方法一定不可以有返回值
B.void是返回值
C.有返回值,需要定义返回值的数据类型
D.如果定义了返回类型,可以没有返回值

【正确答案】C
【答案解析】A一个方法可以有返回值,也可以没有返回值B没有返回值用void表示D选项如果定义了返回类型,必须返回值
多选题 (共计 7 题,总计 32分)

打印1到10的for循环语句正确的是( )
A.for(int i=1; i<=11; i++) {
System.out.println(i);
}
B.for(int i=1; i<10; i++) {
System.out.println(i);
}
C.for(int i=1; i<=10; i++) {
System.out.println(i);
}
D.for(int i=1; i<11; i++) {
System.out.println(i);
}

【正确答案】C,D
【答案解析】A选项是打印1到11,B选项是打印1-9;

下面关于数组的说法中,错误的是( )
A.在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空
B.数组可以在内存空间连续存储任意一组数据
C.数组必须先声明,然后才能使用
D.数组本身是一个对象

【正确答案】A,B
【答案解析】A值为0,B指定了数组的数据类型之后,就只能对数组赋值相同数据类型的数据;

下面有关java的instanceof、?、&、&&说法正确的有?
A.instanceof 可用来判断某个实例变量是否属于某种类的类型。
B."?:" 三目运算符
C.&在逻辑运算中是非短路逻辑与,在位运算中是按位与
D.&& 逻辑运算:逻辑与

【正确答案】A,B,C,D
【答案解析】指定了数组的数据类型之后,就只能对数组赋值相同数据类型的数据

在Java中,下面对于构造函数的描述错误的是( )
A.类不一定要显式定义构造函数
B.构造函数的返回类型是void
C.如果构造函数不带任何参数,那么构造函数的名称和类名可以不同
D.一个类可以定义多个构造函数

【正确答案】B,C
【答案解析】B构造函数的名字与类的名字相同,并且不能有返回类型;C构造函数的名字与类的名字必须相同

关于实例方法和类方法,以下描述正确的是( )
A.实例方法也可访问静态变量
B.类方法既可以访问类变量,也可以访问实例变量
C.类方法只能通过类名来调用
D.实例方法只能通过对象来调用

【正确答案】A,D
【答案解析】静态方法中只能使用静态变量,类方法也能用对象调用

(多选题)下面选项中哪两个可以在 A 的子类中使用( )
class A {
protected int method1 (int a, int b) {
return 0;
}
}
A.public int method1(int a, int b) { return 0; }
B.private int method1(int a, int b) { return 0; }
C.private int method1(int a, long b) { return 0; }
D.public short method1(int a, int b) { return 0; }

【正确答案】A,C
【答案解析】B子类重写父类的方法,访问权限不能降低;C属于重载;D子类重写父类的方法如果返回值类型是基本类型的话,要求相同。

下列说法不正确的是( )
A.final饰的方法,不能重载
B.普通可以通过类名.方法名进行调用
C.构造方法可以被重载,不能被重写
D.static修饰的类可以被继承

【正确答案】A,B
【答案解析】final修饰的方法不能重写,普通方法需要创建对象才能调用

访问控制

假设a=1,b=2,将a和b的值做交换,用变量交换的思想,以下选项可以实现的是( )
A.int t=a;
a=b;
b=t;
B.int t=b;
a=b;
b=t;
C.int t=a;
b=a;
b=t;
D.int t=a;
a=b;
t=b;

【正确答案】A
【答案解析】A选项可以实现ab值的互换,为三步转圈赋值方法,BCD选项ab的值最后一样了

定义字符串:String str=“abcdefg”;则str.indexOf(‘d’)的结果是( )
A.‘d’
B.TRUE
C.3
D.4

【正确答案】C
【答案解析】起始位置是0,所以d是3

关于JDK的概述错误的是
A.JDK是 Java 语言的软件开发工具包
B.JDK是整个java开发的核心
C.JDK包含了:JAVA开发工具(jdk\bin),基础开发库(jdk\jre\lib\rt.jar),基础开发库的源码(jdk\src.zip)
D.JDK安装包里不包含JVM

【正确答案】D
【答案解析】JDK里包含了JVM

以下关于JDK,JRE,JVM的表述不正确的是()
A.JDK是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库
B.JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库
C.JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序
D.JDK,JRE,JVM整体就是Java虚拟机

【正确答案】D
【答案解析】JDK包含JRE是整个Java的核心,JRE包含了JVM是运行JAVA程序所必须的环境的集合,JVM是java虚拟机,整个java实现跨平台最核心的部分

(单选题)根据以下代码下面选项正确的是():

  1. package foo;
  2. import java.util.Vector;
  3. private class MyVector extends Vector {
  4. int i = 1;
    
  5. public MyVector() {
    
  6.   i = 2;
    
  7. }
    
  8. }
  9. public class MyNewVector extends MyVector {
  10. public MyNewVector () {
  11.  i = 4;
    
  12. }
  13. public static void main (String args []) {
  14.  MyVector v = new MyNewVector();
    
  15. }
  16. }
    A.代码无编译错误
    B.第3行出现编译错误
    C.第6行出现编译错误
    D.第9行出现编译错误

【正确答案】B
【答案解析】类 MyVector 不能是私有的

以下说法错误的是( )
A.override是重载,overload是重写;
B.this是调用当前成员属性,super是调用父类代码;
C.父类中构造方法不可以继承,方法可以继承;
D.二进制中符号位1是负,0是正

【正确答案】A
【答案解析】override是重写,overload是重载

下面关于变量及其范围的陈述哪些是不正确的( )?
A.实例变量是类的成员变量
B.实例变量用关键字static声明
C.在方法中定义的局部变量在该方法被加载时创建
D.局部变量在使用前必须被初始化

【正确答案】B
【答案解析】由static修饰的变量称为类变量或是静态变量

以下关于Java语言继承的说法正确的是( )
A.Java中的类可以有多个直接父类
B.抽象类不能有子类
C.Java中的接口支持多继承
D.最终类可以作为其它类的父类

【正确答案】C
【答案解析】A选项类是单继承,B选项是抽象类可以有子类,D选项标志为final的类不能被继承,所以不能作为其他类的父类,典型代表就是String类

逻辑与(短路与)可以用以下哪个符号表示()
A.&
B.||
C.&&
D.|

【正确答案】C
【答案解析】&代表and,|代表or,||代表逻辑或(短路或),&&代表逻辑与(短路与)

下面有关for循环的描述正确的是( )
A.for循环体语句中,可以包含多条语句,但要用大括号括起来
B.for循环只能用于循环次数已经确定的情况
C.在for循环中,不能使用break语句跳出循环
D.for循环是先执行循环体语句,后进行条件判断

【正确答案】A
【答案解析】B选项for循环的次数本身并不确定,C选项可以使用break跳出循环,D选项是先进行条件判断,然后执行循环体语句
多选题 (共计 7 题,总计 32分)

下面关于数组的说法中,错误的是( )
A.在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空
B.数组可以在内存空间连续存储任意一组数据
C.数组必须先声明,然后才能使用
D.数组本身是一个对象

【正确答案】A,B
【答案解析】A值为0,B指定了数组的数据类型之后,就只能对数组赋值相同数据类型的数据;

下列说法不正确的是( )
A.final饰的方法,不能重载
B.普通可以通过类名.方法名进行调用
C.构造方法可以被重载,不能被重写
D.static修饰的类可以被继承

【正确答案】A,B
【答案解析】final修饰的方法不能重写,普通方法需要创建对象才能调用

打印1到10的for循环语句正确的是( )
A.for(int i=1; i<=11; i++) {
System.out.println(i);
}
B.for(int i=1; i<10; i++) {
System.out.println(i);
}
C.for(int i=1; i<=10; i++) {
System.out.println(i);
}
D.for(int i=1; i<11; i++) {
System.out.println(i);
}

【正确答案】C,D
【答案解析】A选项是打印1到11,B选项是打印1-9;

在Java中,下面对于构造函数的描述错误的是( )
A.类不一定要显式定义构造函数
B.构造函数的返回类型是void
C.如果构造函数不带任何参数,那么构造函数的名称和类名可以不同
D.一个类可以定义多个构造函数

【正确答案】B,C
【答案解析】B构造函数的名字与类的名字相同,并且不能有返回类型;C构造函数的名字与类的名字必须相同

下面有关java的instanceof、?、&、&&说法正确的有?
A.instanceof 可用来判断某个实例变量是否属于某种类的类型。
B."?:" 三目运算符
C.&在逻辑运算中是非短路逻辑与,在位运算中是按位与
D.&& 逻辑运算:逻辑与

【正确答案】A,B,C,D
【答案解析】指定了数组的数据类型之后,就只能对数组赋值相同数据类型的数据

(多选题)以下哪个选项可以替换第2行位置的代码,且替换后效果相同()

  1. public interface Foo{
  2. int k = 4;
  3. }
    A.final int k = 4;
    B.public int k = 4;
    C.static int k = 4;
    D.abstract int k = 4;

【正确答案】A,B,C
【答案解析】接口中的属性都是常量,默认由public static final同时修饰,可以省略,abstract不能修饰变量

关于实例方法和类方法,以下描述正确的是( )
A.实例方法也可访问静态变量
B.类方法既可以访问类变量,也可以访问实例变量
C.类方法只能通过类名来调用
D.实例方法只能通过对象来调用

【正确答案】A,D
【答案解析】静态方法中只能使用静态变量,类方法也能用对象调用

static和final

Object的描述错误的是( )
A.Object是顶层父类
B.一个类,如果不继承其他类,默认继承 Object
C.调用Object下toString方法是返回对象的字符串表示形式
D.Object下的equals方法是用来比较对象是否数值相等

【正确答案】D
【答案解析】equals方法是当前对象,与参数对象比较是否相等,也可以理解为用来检测两个对象是否相等,即两个对象的内容是否相等。

在正则表达式中\d代表什么()
A.数字字符
B.非数字字符
C.任意一个字母
D.任意的空白符

【正确答案】A
【答案解析】\d代表数字字符集

关于数组的长度属性描述错误的是( )
A.a.length()可以得出数组长度
B.长度不可变
C.最大下标 a.length-1
D.数组具有长度

【正确答案】A
【答案解析】数组长度可以用a.length得出

以下选项中错误的是()
A.整数字面值是int类型
B.byte,short,char三种比int大的整数可以用范围内的值直接赋值
C.float r =3.14f;执行成立
D.浮点数的字面值是double类型

【正确答案】B
【答案解析】byte,short,char三种比int小的整数可以用范围内的值直接赋值,举个例子:byte b1=127;//对,byte b2=128;//错,超出byte范围

下列代码输出结果是
int i = 10;
while ( i > 0 ){
i = i + 1;
if ( i = =10 ){
break;
}
}
A.while循环执行10次
B.死循环
C.循环一次都不执行
D.循环执行一次

【正确答案】B
【答案解析】i永远大于10

java有8种基本类型,请问byte、int、long、char、float、double、boolean各占多少个字节?
A.1 2 8 2 4 8 1
B.1 4 8 2 4 8 1
C.1 4 4 2 4 4 2
D.1 4 4 2 4 8 2

【正确答案】B
【答案解析】byte:8位 一个字节 int:32位 四个字节 long:64位 八个字节 char:16位 两个字节 float:32位 四个字节 double:64位 八个字节 boolean:8位 一个字节

关于重载的描述错误的是 ( )
A.重载是面向对象的一个基本特性
B.重载就是在一个类中,有相同的方法名称,但形参不同的方法
C.重载的结果,可以让一个程序段尽量减少代码和方法的种类。
D.跟成员方法一样,构造方法不可以重载

【正确答案】D
【答案解析】跟成员方法一样,构造方法也可以重载(参数类型或者参数个数不同)

关于抽象类和抽象方法的描述错误的是( )
A.抽象类是半成品类、没有完成的类
B.抽象方法是只有方法的定义,没有方法代码
C.抽象类能创建对象
D.public abstract void f();定义了一个抽象方法

【正确答案】C
【答案解析】抽象类不能创建对象

以下合法的数组定义是()
A.int a[]=“string”;
B.int a[5]={0,1,2,3,4,5};
C.char a[]={0,1,2,3,4,5};
D.char s={“string”};

【正确答案】C
【答案解析】AD赋值类型和指定的类型不匹配,B格式错误

下列选项中,哪个不是Number类的子类( )?
A.BigInteger
B.Integer
C.String
D.BigDecimal

【正确答案】C
【答案解析】String不是

多选题
以下哪些论述是正确的
A.静态方法中不能调用非静态方法
B.非静态方法中不能调用静态方法
C.静态方法不能被覆盖
D.静态方法能够用类名直接调
E.可以在不产生任何一个对象的情况下调用静态方法
F.静态方法里可以使用 this

【正确答案】A,D,E
【答案解析】考察static的定义理解

下列说法不正确的是( )
A.final饰的方法,不能重载
B.普通可以通过类名.方法名进行调用
C.构造方法可以被重载,不能被重写
D.static修饰的类可以被继承

【正确答案】A,B
【答案解析】final修饰的方法不能重写,普通方法需要创建对象才能调用

打印1到10的for循环语句正确的是( )
A.for(int i=1; i<=11; i++) {
System.out.println(i);
}
B.for(int i=1; i<10; i++) {
System.out.println(i);
}
C.for(int i=1; i<=10; i++) {
System.out.println(i);
}
D.for(int i=1; i<11; i++) {
System.out.println(i);
}

【正确答案】C,D
【答案解析】A选项是打印1到11,B选项是打印1-9;

下列方法声明中正确的是:
A.abstract final void m()
B.public void final m()
C.static abstract void m()
D.private final void m()
E.private abstract void m()
F.public static final void m()

【正确答案】D,E,F
【答案解析】

下面有关java的instanceof、?、&、&&说法正确的有?
A.instanceof 可用来判断某个实例变量是否属于某种类的类型。
B."?:" 三目运算符
C.&在逻辑运算中是非短路逻辑与,在位运算中是按位与
D.&& 逻辑运算:逻辑与

【正确答案】A,B,C,D
【答案解析】指定了数组的数据类型之后,就只能对数组赋值相同数据类型的数据

下面关于数组的说法中,错误的是( )
A.在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空
B.数组可以在内存空间连续存储任意一组数据
C.数组必须先声明,然后才能使用
D.数组本身是一个对象

【正确答案】A,B
【答案解析】A值为0,B指定了数组的数据类型之后,就只能对数组赋值相同数据类型的数据;

在Java中,下面对于构造函数的描述错误的是( )
A.类不一定要显式定义构造函数
B.构造函数的返回类型是void
C.如果构造函数不带任何参数,那么构造函数的名称和类名可以不同
D.一个类可以定义多个构造函数

【正确答案】B,C
【答案解析】B构造函数的名字与类的名字相同,并且不能有返回类型;C构造函数的名字与类的名字必须相同

关于实例方法和类方法,以下描述正确的是( )
A.实例方法也可访问静态变量
B.类方法既可以访问类变量,也可以访问实例变量
C.类方法只能通过类名来调用
D.实例方法只能通过对象来调用

【正确答案】A,D
【答案解析】静态方法中只能使用静态变量,类方法也能用对象调用

接口和抽象类

(单选题)Runnable接口的实现类中必须定义以下哪个方法( )
A.void run()
B.public void run()
C.public void start()
D.public void run(int priority)

【正确答案】B
【答案解析】实现 Runnable 接口,接口中有一个抽象方法 run,实现类中重写该方法,且该方法是public修饰的。

(单选题)以下程序的运行结果是()

  1. public static void main(String[] args) {
  2. Object obj = new Object() {
  3. public int hashCode() {
    
  4.   return 42;
    
  5. }
    
  6. };
  7. System.out.println(obj.hashCode());
  8. }
    A.42
    B.运行时出错
    C.第2行位置编译出错
    D.第7行位置编译出错

【正确答案】A
【答案解析】匿名内部类中已覆盖 了hashCode 方法。

(单选题)已知如下代码,下列选项中哪个表达式会编译出错( )
interface IFace{}
class CFace implements IFace{}
class Base{}
public class ObRef extends Base{
public static void main(String argv[]){
ObRef ob = new ObRef();
Base b = new Base();
Object o1 = new Object();
IFace o2 = new CFace();
}
}
A.o1=o2;
B.b=ob;
C.ob=b;
D.o1=b;

【正确答案】C
【答案解析】b 是 ob 的父类,将父类引用赋值给子类型变量上需要强制类型转换

(单选题)在JAVA中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )。
A.interface A extend B,C
B.interface A implements B,C
C.class A implements B,C
D.class A implements B, implements C

【正确答案】C
【答案解析】因为是类实现所以开头是class,implements只用写一次。

(单选题)接口是 Java 面向对象的实现机制之一,以下说法正确的是( )
A.Java 支持多重继承,一个类可以实现多个接口
B.Java 只支持单重继承,但一个类可以实现多个接口
C.Java 只支持单重继承,一个类只可以实现一个接口
D.Java 支持多重继承,但一个类只可以实现一个接口

【正确答案】B
【答案解析】Java支持单重继承,一个类只能继承自另外的一个类,但是一个类可以实 现多个接口。

(单选题)关于抽象方法说法正确的是( )
A.不可以是静态的
B.可以有方法体
C.可以在普通类中定义
D.只能存在于抽象类中

【正确答案】A
【答案解析】抽象方法不可以是静态的,不可以有方法体,不可以在普通类中定义,可以在接口中和抽象类中定义。

(单选题)java7版本以前,下列有关接口的叙述错误的是哪项?()
A.接口中只能包含抽象方法和常量
B.一个类可以实现多个接口
C.非抽象的类实现接口时必须实现其中的所有抽象方法
D.类可以继承接口

【正确答案】D
【答案解析】java8以前,接口只能被类实现,类不能继承接口,遵循单继承多实现原则。java8以后,接口中可以包含静态方法和默认方法。

(单选题)下列哪一种叙述是正确的( )
A.abstract 修饰符可修饰字段、方法和类
B.抽象方法的 body 部分必须用一对大括号{ }包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号

【正确答案】D
【答案解析】abstract可以修饰方法和类,不能修饰属性。抽象方法没有方法体,即没有 大括号{}

(单选题)从下面四段(A,B,C,D)代码中选择出正确的代码段( )
A.abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
B.public class Something {
void doSomething () {
private String s = “”;
int l = s.length();
}
}
C.public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
D.public class Something {
public int addOne(final int x) {
return ++x;
}
}

【正确答案】C
【答案解析】A. 抽象方法不能有方法体。B.方法中定义的是局部变量,不能用类成员变量修饰符 private。D.final 修饰为常量,常量的值不能被改变。

(单选题)A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:
A a0=new A();
A a1 =new B();
A a2=new C();
问以下哪个说法是正确的? ( )
A.只有第1行能通过编译
B.第1、2行能通过编译,但第3行编译出错
C.第1、2、3行能通过编译,但第2、3行运行时出错
D.第1行、第2行和第3行的声明都是正确的

【正确答案】D
【答案解析】都属于父类引用指向子类对象

(多选题)不能用来修饰 interface 的有( )
A.private
B.public
C.protected
D.static

【正确答案】A,C,D
【答案解析】修饰接口可以是public和默认

(多选题)以下哪个选项可以替换第2行位置的代码,且替换后效果相同()

  1. public interface Foo{
  2. int k = 4;
  3. }
    A.final int k = 4;
    B.public int k = 4;
    C.static int k = 4;
    D.abstract int k = 4;

【正确答案】A,B,C
【答案解析】接口中的属性都是常量,默认由public static final同时修饰,可以省略,abstract不能修饰变量

(多选题)在JAVA 8.0版本之前,接口中可以定义( )。
A.静态方法
B.常量
C.构造方法
D.抽象方法

【正确答案】B,D
【答案解析】java8之前,接口中只能定义常量和抽象方法。

接口和抽象类

(单选题)A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:
A a0=new A();
A a1 =new B();
A a2=new C();
问以下哪个说法是正确的? ( )
A.只有第1行能通过编译
B.第1、2行能通过编译,但第3行编译出错
C.第1、2、3行能通过编译,但第2、3行运行时出错
D.第1行、第2行和第3行的声明都是正确的

【正确答案】D
【答案解析】都属于父类引用指向子类对象

(单选题)已知类 Teacher 和 Student 都是类 Person 的子类,则对于下列代码说法正确的是( )
Person t = new Teacher();
if (t instanceof Teacher){
Student s = (Student)t;
}
A.将构造一个 Student 对象
B.将构造一个 Teacher 对象
C.编译出错,且运行时出错
D.编译正确,且运行时出错

【正确答案】D
【答案解析】instanceof 是 Java 的一个二元操作符,它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 类型的数据。Teahcer 和 Student 之间没有继承关系不能做强制类型转换。

(单选题)Runnable接口的实现类中必须定义以下哪个方法( )
A.void run()
B.public void run()
C.public void start()
D.public void run(int priority)

【正确答案】B
【答案解析】实现 Runnable 接口,接口中有一个抽象方法 run,实现类中重写该方法,且该方法是public修饰的。

(单选题)下列关于修饰符混用的说法,错误的是( )
A.abstract 不能与 final 并列修饰同一个类
B.abstract 类中可以有 private 的成员
C.abstract 方法可以放在 abstract 类或接口中
D.static 方法中能直接使用非 static 的属性

【正确答案】D
【答案解析】静态方法中不能引用其外部的非静态成员

(单选题)java7版本以前,下列有关接口的叙述错误的是哪项?()
A.接口中只能包含抽象方法和常量
B.一个类可以实现多个接口
C.非抽象的类实现接口时必须实现其中的所有抽象方法
D.类可以继承接口

【正确答案】D
【答案解析】java8以前,接口只能被类实现,类不能继承接口,遵循单继承多实现原则。java8以后,接口中可以包含静态方法和默认方法。

(单选题)下列关于 interface 的说法正确的是( )
A.interface 中可以有 private 方法
B.interface 中可以有 final 方法
C.interface 中可以有 function 实现
D.interface 可以继承其他 interface

【正确答案】D
【答案解析】A. 接口中不可以有 private 的方法。B.接口中不可以有 final 的方法 接口中的方法默认是 public abstract 的。C.接口中的方法不可以有实现

(单选题)已知如下代码,下列选项中哪个表达式会编译出错( )
interface IFace{}
class CFace implements IFace{}
class Base{}
public class ObRef extends Base{
public static void main(String argv[]){
ObRef ob = new ObRef();
Base b = new Base();
Object o1 = new Object();
IFace o2 = new CFace();
}
}
A.o1=o2;
B.b=ob;
C.ob=b;
D.o1=b;

【正确答案】C
【答案解析】b 是 ob 的父类,将父类引用赋值给子类型变量上需要强制类型转换

(单选题)下列哪一种叙述是正确的( )
A.abstract 修饰符可修饰字段、方法和类
B.抽象方法的 body 部分必须用一对大括号{ }包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号

【正确答案】D
【答案解析】abstract可以修饰方法和类,不能修饰属性。抽象方法没有方法体,即没有 大括号{}

(单选题)在JAVA中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )。
A.interface A extend B,C
B.interface A implements B,C
C.class A implements B,C
D.class A implements B, implements C

【正确答案】C
【答案解析】因为是类实现所以开头是class,implements只用写一次。

(单选题)从下面四段(A,B,C,D)代码中选择出正确的代码段( )
A.abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
B.public class Something {
void doSomething () {
private String s = “”;
int l = s.length();
}
}
C.public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
D.public class Something {
public int addOne(final int x) {
return ++x;
}
}

【正确答案】C
【答案解析】A. 抽象方法不能有方法体。B.方法中定义的是局部变量,不能用类成员变量修饰符 private。D.final 修饰为常量,常量的值不能被改变。

(多选题)以下哪个选项可以替换第2行位置的代码,且替换后效果相同()

  1. public interface Foo{
  2. int k = 4;
  3. }
    A.final int k = 4;
    B.public int k = 4;
    C.static int k = 4;
    D.abstract int k = 4;

【正确答案】A,B,C
【答案解析】接口中的属性都是常量,默认由public static final同时修饰,可以省略,abstract不能修饰变量

(多选题)在JAVA 8.0版本之前,接口中可以定义( )。
A.静态方法
B.常量
C.构造方法
D.抽象方法

【正确答案】B,D
【答案解析】java8之前,接口中只能定义常量和抽象方法。

(多选题)不能用来修饰 interface 的有( )
A.private
B.public
C.protected
D.static

【正确答案】A,C,D
【答案解析】修饰接口可以是public和默认

shoot项目

Given:

public static void main(String[] args) {

Object obj = new Object() {

public int hashCode() {

return 42;

}

};

System.out.println(obj.hashCode());

}

What is the result?
A.42
B.An exception is thrown at runtime.
C.Compilation fails because of an error on line 12.
D.Compilation fails because of an error on line 16.
E.Compilation fails because of an error on line 17.

【正确答案】A
【答案解析】匿名内部类覆盖hashCode方法。

多选题 (共计 2 题,总计 4分)

关于Java语言,下列描述正确的是(多选)
A.switch 不能够作用在String类型上
B.List, Set, Map都继承自Collection接口
C.Java语言支持goto语句
D.GC是垃圾收集器,程序员不用担心内存管理

【正确答案】A,D
【答案解析】B. Map没有继承Collection接口C.java不支持goto语句

链表具有的特点是:
A.不必事先估计存储空间
B.可随机访问任一元素
C.插入删除不需要移动元素
D.所需空间与线性表长度成正比

【正确答案】A,C,D
【答案解析】A.采用动态存储分配,不会造成内存浪费和溢出。B. 不能随机访问,查找时要从头指针开始遍历C. 插入、删除时,只要找到对应前驱结点,修改指针即可,无需移动元素D. 需要用额外空间存储线性表的关系,存储密度小

Given:

public static void main(String[] args) {

Object obj = new Object() {

public int hashCode() {

return 42;

}

};

System.out.println(obj.hashCode());

}

What is the result?
A.42
B.An exception is thrown at runtime.
C.Compilation fails because of an error on line 12.
D.Compilation fails because of an error on line 16.
E.Compilation fails because of an error on line 17.

【正确答案】A
【答案解析】匿名内部类覆盖hashCode方法。

多选题
关于Java语言,下列描述正确的是(多选)
A.switch 不能够作用在String类型上
B.List, Set, Map都继承自Collection接口
C.Java语言支持goto语句
D.GC是垃圾收集器,程序员不用担心内存管理

【正确答案】A,D
【答案解析】B. Map没有继承Collection接口C.java不支持goto语句

链表具有的特点是:
A.不必事先估计存储空间
B.可随机访问任一元素
C.插入删除不需要移动元素
D.所需空间与线性表长度成正比

【正确答案】A,C,D
【答案解析】A.采用动态存储分配,不会造成内存浪费和溢出。B. 不能随机访问,查找时要从头指针开始遍历C. 插入、删除时,只要找到对应前驱结点,修改指针即可,无需移动元素D. 需要用额外空间存储线性表的关系,存储密度小

Given:

public static void main(String[] args) {

Object obj = new Object() {

public int hashCode() {

return 42;

}

};

System.out.println(obj.hashCode());

}

What is the result?
A.42
B.An exception is thrown at runtime.
C.Compilation fails because of an error on line 12.
D.Compilation fails because of an error on line 16.
E.Compilation fails because of an error on line 17.

【正确答案】A
【答案解析】匿名内部类覆盖hashCode方法。

多选题
关于Java语言,下列描述正确的是(多选)
A.switch 不能够作用在String类型上
B.List, Set, Map都继承自Collection接口
C.Java语言支持goto语句
D.GC是垃圾收集器,程序员不用担心内存管理

【正确答案】A,D
【答案解析】B. Map没有继承Collection接口C.java不支持goto语句

链表具有的特点是:
A.不必事先估计存储空间
B.可随机访问任一元素
C.插入删除不需要移动元素
D.所需空间与线性表长度成正比

【正确答案】A,C,D
【答案解析】A.采用动态存储分配,不会造成内存浪费和溢出。B. 不能随机访问,查找时要从头指针开始遍历C. 插入、删除时,只要找到对应前驱结点,修改指针即可,无需移动元素D. 需要用额外空间存储线性表的关系,存储密度小

面向对象

关于泛型的说法错误的是( )
A.泛型是JDK1.5出现的新特性
B.泛型是一种安全机制
C.使用泛型避免了强制类型转换
D.使用泛型必须进行强制类型转换

【正确答案】D
【答案解析】

关于迭代器说法错误的是()
A.迭代器是取出集合元素的方式
B.迭代器的hasNext()方法返回值是布尔类型
C.List集合有特有迭代器
D.next()方法将返回集合中的上一个元素.

【正确答案】D
【答案解析】

以下关于面向对象概念的描述中,不正确的一项是()。
A.在现实生活中,对象是指客观世界的实体
B.程序中的对象就是现实生活中的对象
C.在程序中,对象是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(class)
D.在程序中,对象是一组变量和相关方法的集合

【正确答案】B
【答案解析】

下面类或者接口中,不属于集合体系的是( )
A.java.util.Collections
B.java.util.Map
C.java.util.Vector
D.java.util.Hashtable

【正确答案】A
【答案解析】

接口是Java面向对象的实现机制之一,以下说法正确的是:( )
A.Java支持多重继承,一个类可以实现多个接口;
B.Java只支持单重继承,一个类可以实现多个接口;
C.Java只支持单重继承,一个类只可以实现一个接口;
D.Java支持多重继承,但一个类只可以实现一个接口。

【正确答案】B
【答案解析】Java支持单重继承,一个类只能继承自另外的一个类,但是一个类可以实现多个接口。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值