Java基础错题

文章目录

    • 1(单选题)下面代码的执行结果是( )
    • 2(单选题)下面的程序输出结果是
    • 3(单选题)在java正则表达式中,表示一个或者多个空格的是 ()
    • 4(单选题)子类A继承了父类B,A a=new A(); 则①父类B静态代码块②父类B非静态代码块③父类B构造函数④子类A静态代码 ⑤子类A非静态代码块⑥子类A的构造函数 的执行顺序是:
    • 5(多选题)下列各项中对于正确赋值的是:
    • 6(多选题)下列各项 空指针异常的是:
    • 7(多选题)下列关于Java中文件输入输出的说法错误的是:
    • 8(多选题)对于代码 public class Test{ public void show(int x, int y, int z) { } //1 } 下列各项中添加在// 1处编译不会出错的是:
    • 9(多选题)下面关于自定义一个线程说法正确的是:
    • 10(多选题)在Java中关于abstract关键字,以下说法正确的是
    • 11(单选题)当线程调用start( )后,其所处状态为()
    • 12(单选题)下列代码的运行结果是
    • 13(多选题)下列方法中能和方法int max(int a, int b, double c)构成重载关系的是( )
    • 14(多选题)下列关于数组和集合之间的区别说法正确的是
    • 15(多选题)下列关于Java中文件输入输出的说法错误的是:
    • 16(多选题)下列关于集合的说法正确的是:
    • 17(单选题)对于代码:
    • 18(多选题)下列关于super的说法错误的是:
    • 19(多选题)下列关于数组和集合之间的区别说法正确的是
    • 20(多选题)下列关于集合的说法正确的是:
    • 21(多选题)下列各项中,能够正确编译(不考虑运行)的是:
    • 22(多选题)下面关于重载和重写说法正确的是:
    • 23(单选题)(单选题)对于代码:
    • 24(单选题)下列程序的功能是在控制台上,每隔1秒钟显示字符串"Hello",能够填写在程序中下划线位置,使程序完整,并能够正确运行的语句是( )
    • 25(多选题)链表具有的特点是( )
    • 26(多选题)以下集合对象中哪几个是线程安全的()
    • 27(多选题)下列说法错误的有( )
    • 29(多选题)下面选项中哪两个可以在 A 的子类中使用( )
    • 30(单选题)关于实例方法和类方法,以下描述正确的是( )
    • 31(单选题)请问,以下哪些修饰符不能用于顶层类?

1(单选题)下面代码的执行结果是( )

import java.util.*;
public class ShortSet{
public static void main(String args[]){
Set s=new HashSet();
for(Short i=0;i<100;i++) {
s.add(i);
s.remove(i-1);
}
System.out.println(s.size());
}
}
A.1
B.100
C.Throws Exception.
D.None of the Above.
【正确答案】B
【答案解析】i是Short类型
i-1是int类型,其包装类为 Integer,
所以s.remove(i-1);不能移除Set集合中Shor类型对象。

2(单选题)下面的程序输出结果是

public class A implements B {
int k = 20; public static void main(String args[]) {
int i;
B c1 = new A();
i = c1.k;
System.out.println(“i=” + i);
}
}
interface B {
int k = 10;
}
A.i=20;
B.程序有编译错误
C.i=10
D.i=true;
【正确答案】C

3(单选题)在java正则表达式中,表示一个或者多个空格的是 ()

A.
\s*
B.
\s+
C.
\S{1,n}
D.
\S{1}
【正确答案】B
【答案解析】\s代表空格,+代表至少出现一次

4(单选题)子类A继承了父类B,A a=new A(); 则①父类B静态代码块②父类B非静态代码块③父类B构造函数④子类A静态代码 ⑤子类A非静态代码块⑥子类A的构造函数 的执行顺序是:

A.
①②③④⑤⑥
B.
①④②③⑤⑥
C.
①②④⑤③⑥
D.
④⑤①②③⑥
【正确答案】B

5(多选题)下列各项中对于正确赋值的是:

A.
byte b = a’;
B.
short s = 2 << 5;
C.
float f = -5;
D.
float f = 3.2f / 1;
【正确答案】A,B,C,D

6(多选题)下列各项 空指针异常的是:

A.
s != null & !s.equals(“”);
B.
s != null && !s.equals(“”);
C.
s != null | !s.equals(“”);
D.
s != null || !s.equals(“”);
【正确答案】A,C,D

7(多选题)下列关于Java中文件输入输出的说法错误的是:

A.
在Java中,可以通过流来实现文件的读写操作
B.
要向文件中写入数据,可以用一个输入流对象
C.
字符流在汉字的处理方面比字节流更加的高效
D.
可以通过Reader reader = new Reader(“C:\a.txt”);来创建一个流对象
【正确答案】B,D

8(多选题)对于代码 public class Test{ public void show(int x, int y, int z) { } //1 } 下列各项中添加在// 1处编译不会出错的是:

A.
public int show(int x,int y,float z){return 0;}
B.
public int show(int x,int y,int z){return 0;}
C.
public void show(int x,int z){}
D.
public void show(int z,int y,int x){}
【正确答案】A,C

9(多选题)下面关于自定义一个线程说法正确的是:

A.
实现Thread接口,重写run方法
B.
实现Runnable接口,重写run方法
C.
实现Callable接口,重写call方法,call方法没有返回值
D.
继承Thread类,重写run方法
【正确答案】B,D

10(多选题)在Java中关于abstract关键字,以下说法正确的是

A.
abstract类中可以没有抽象方法
B.
abstract类的子类也可以是抽象类
C.
abstract类可以有构造方法
D.
abstract类可以创建对象
【正确答案】A,B,C
【答案解析】abstract类的特点

11(单选题)当线程调用start( )后,其所处状态为()

A.
阻塞状态
B.
运行状态
C.
就绪状态
D.
新建状态
【正确答案】C

12(单选题)下列代码的运行结果是

public static void func() {
try {
throw new Exception();
} finally {
System.out.println(“B”);
}
}
public static void main(String[] args) {
try {
func();
System.out.println(“A”);
} catch (Exception e) {
System.out.println(“C”);
}
System.out.println(“D”);
}
A.
BACD
B.
BAD
C.
ACD
D.
编译失败
【正确答案】D

13(多选题)下列方法中能和方法int max(int a, int b, double c)构成重载关系的是( )

A.
private double max(int a, int b, double c)
B.
void max(int a, double c, int b)
C.
int max(double a, int b)
D.
int max(int x, int y, double z)
【正确答案】B,C
【答案解析】重载的关系方法名和参数列表

14(多选题)下列关于数组和集合之间的区别说法正确的是

A.
求集合和数组的大小是用size方法。
B.
集合大小是不固定的,数组的大小是固定的。
C.
集合只能存储基本类型数据和引用类型数据。
D.
数组一旦定义,那么此数组就只能存储定义的数据类型元素。
【正确答案】B,D

15(多选题)下列关于Java中文件输入输出的说法错误的是:

A.
在Java中,可以通过流来实现文件的读写操作
B.
要向文件中写入数据,可以用一个输入流对象
C.
字符流在汉字的处理方面比字节流更加的高效
D.
可以通过Reader reader = new Reader(“C:\a.txt”);来创建一个流对象
【正确答案】B,D

16(多选题)下列关于集合的说法正确的是:

A.
集合的顶级接口是Collections
B.
List中存储的元素的内存空间一定是连续的
C.
Set中的元素是不可重复的
D.
可以利用Collections.sort()来对List排序
【正确答案】C,D

17(单选题)对于代码:

public class StaticExam {
public static void main(String[] args) {
System.out.println(new SE().i);
System.out.println(SEDemo.i);
System.out.println(SEDemo.j);
}
}
class SEDemo{
public static SEDemo s=new SEDemo();
public static int i=0;
public static int j;
public SEDemo(){
i++;
j++;
}
}
class SE{
{ i=5; }
int i=1;
}
}输出结果依次为:
A.
5,0,1
B.
5,1,1
C.
1,0,1
D.
1,1,1
【正确答案】C

18(多选题)下列关于super的说法错误的是:

A.
super代表当前对象的引用
B.
可以通过super语句来实现父类构造函数的调用
C.
可以通过super调用私有方法或者私有属性
D.
可以在主函数中使用super来调用其他的方法
【正确答案】A,C,D

19(多选题)下列关于数组和集合之间的区别说法正确的是

A.
求集合和数组的大小是用size方法。
B.
集合大小是不固定的,数组的大小是固定的。
C.
集合只能存储基本类型数据和引用类型数据。
D.
数组一旦定义,那么此数组就只能存储定义的数据类型元素。
【正确答案】B,D

20(多选题)下列关于集合的说法正确的是:

A.
集合的顶级接口是Collections
B.
List中存储的元素的内存空间一定是连续的
C.
Set中的元素是不可重复的
D.
可以利用Collections.sort()来对List排序
【正确答案】C,D

21(多选题)下列各项中,能够正确编译(不考虑运行)的是:

A.
Integer i = new Integer(“0x123”)
B.
Double d = new Double(5)
C.
Boolean b = new Boolean(“tRue”)
D.
Boolean b = new Boolean(“abc”)
【正确答案】A,B,C,D

22(多选题)下面关于重载和重写说法正确的是:

A.
静态方法可以被重载,但是不能被重写。
B.
final修饰方法的时候,表示这个方法不能被重写,可以重载。
C.
重载是一种编译时多态,重写是一种运行时多态。
D.
子类重写的方法的权限修饰符要大于等于父类.
【正确答案】A,B,C,D

对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,
接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,
再去看父类有没有非静态代码块,
如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,
接着执行父类的构造方法;父类的构造方法执行完毕之后,
它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。
子类的非静态代码块执行完毕再去执行子类的构造方法。
总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,
然后执行子类非静态代码块和构造方法。

&

|

&&

||

23(单选题)(单选题)对于代码:

package cn.tedu.test1
public class A{
int age;
}
package cn.tedu.test2
public class C{
public static void main(String[] args) {
B b=new B();
b.clone(); //1
}
}
class B extends A{
int age;
public void test1(){
A a=new B();
a.clone(); //2
B b=new B();
b.clone(); //3
}
}
编译报错的行号是:
A.1,2,3
B.2,3
C.1,2
D.1,3

空指针异常:路径名不对,类名路径不对

24(单选题)下列程序的功能是在控制台上,每隔1秒钟显示字符串"Hello",能够填写在程序中下划线位置,使程序完整,并能够正确运行的语句是( )

public class Test implements Runnable{
public static void main(String[] args){
Test t=new Test();
Thread tt=new Thread(t);
tt.start();
}
public void run(){
for(;?{
try{
__________
}catch(_________ e ){}
System.out.println(“Hello”);
}
}
}
A.Thread. sleep (1000) InterruptedException
B.sleep (1000) InterruptedException
C.t. sleep (1000) InterruptedException
D.Thread. sleep (1000) RuntimeException
【正确答案】A
【答案解析】睡眠需要笤俑Thread的sleep方法,传入参数为一个long类型毫秒值,
本题中要求间隔时间为1秒,所以需要传入1000毫秒作为参数。
打断睡眠程序会抛出InterruptedException异常。

25(多选题)链表具有的特点是( )

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

26(多选题)以下集合对象中哪几个是线程安全的()

A.LinkedList
B.ArrayList
C.Vector
D.Hashtable
【正确答案】C,D
【答案解析】Collection 是对象集合, Collection 有两个子接口 List 和 Set,
List 可以通过下标 (1,2…) 来取得值,值可以重复,而 Set 只能通过游标来取值,并且值是不能重复的
ArrayList , Vector , LinkedList 是 List 的实现类
ArrayList 是线程不安全的, Vector 是线程安全的,这两个类底层都是由数组实现的
LinkedList 是线程不安全的,底层是由链表实现的
Map 是键值对集合
HashTable 和 HashMap 是 Map 的实现类
HashTable 是线程安全的,不能存储 null 值
HashMap 不是线程安全的,可以存储 null 值

27(多选题)下列说法错误的有( )

A.在类方法中可用 this 来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
【正确答案】A,C,D
【答案解析】A在类方法中不能使用 this 关键字。
C在类方法中可以调用其它类中的类方法。
D在类方法中可以通过实例化对象调用实例方法。
28多选题) 下列变量命名哪个是合法的()
A.class
B.$abc
C.1234
D._name
【正确答案】B,D
【答案解析】class是java中的关键字,java中对象的命名不能是全数字

29(多选题)下面选项中哪两个可以在 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子类重写父类的方法如果返回值类型是基本类型的话,要求相同。

final 修饰方法,在子类中不能被重写。
重载:方法名相同且参数列表不同,与返回值类型无关。
对象是先声明,声明后会在给对象在内存里开辟空间,之后初始化,再进行使用
常量是public final修饰的public final int MAX_LENGTH=100

30(单选题)关于实例方法和类方法,以下描述正确的是( )

A.实例方法只能访问实例变量
B.类方法既可以访问类变量,也可以访问实例变量
C.类方法只能通过类名来调用
D.实例方法只能通过对象来调用
【正确答案】D
【答案解析】A 实例方法可以访问类变量;
B 类方法只能访问类变量;
C 类方法可以通 过对象调用。

程序中的对象是一种数据信息,并非现实中的实际物体

31(单选题)请问,以下哪些修饰符不能用于顶层类?

A.public
B.private
C.abstract
D.final
【正确答案】B
【答案解析】对于顶层类(外部类)来说,只有两种修饰符:public和默认(default)。
因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。
因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:
public和默认(default)。
但是private可以修饰class的,只不过该类不能使顶层类,可以是内部类
内部类的上一级是外部类,那么对应的有四种访问控制修饰符:
本类(private),同包(default),父子类(protected),任何位置(public)。
当一个内部类使用了private修饰后,只能在该类的外部类内部使用

你可能感兴趣的:(笔记,错题)