Java选择题错题集

  1. Java语言中,能够在循环结构中使用的跳转语句是(ABCD)。
    A.break
    B.continue
    C.return
    D.throw
    解析:Java提供了4种能在循环结构中使用的跳转语句:分别是break语句、continue语句、return语句和throw语句

  2. 关于分支结构,下列说法正确的是(B)。
    A.if语句和else语句必须成对出现
    B.if语句可以没有对应的else语句
    C.switch语句中,每个case子句中都必须有break语句。
    D.switch语句中必须有default语句
    解析:if语句可单独使用,但else语句前必须要有与之匹配的if语句块

  3. Java的核心包中,提供编程应用的基本类和接口的包是(B)。
    A.java.util B.java.lang
    C.java.applet D.java.rmi

  4. Java语言使用的字符码集是(A)。
    A.Unicode
    B.DCB
    C.BCD
    D.ASCII

  5. Java语言能够实现跨平台的基础是(D)。
    A. Java类库
    B. Java编译器
    C. 执行引擎
    D. JVM

  6. JRE由JDK和JVM组成。 (×)
    解析:
    在这里插入图片描述

  7. Java语言中编译程序的命令是(C)。
    A.java
    B.javadoc
    C.javac
    D.javah

  8. 下列循环语句的循环次数是_____D____。
    int x=3;
    while(x<8)
    x+=2;
    x++;
    A.0
    B.1
    C.2
    D.3

  9. 若定义有short s; byte b; char c; 则表达式s - b + c的结果类型为 ( C) 。
    A.char
    B.short
    C.int
    D.byte

  10. 下列程序的输出结果是:i=1,j= 0

public static void main(String[] args) {
	int i = 0, j = 5;
	tp: 
	for ( ;  ; ) {
	    i++;
	    for ( ; ; )
		if (i > j)	
		    break tp;
             	else    
		    --j; 
	}
	System.out.println("i=" + i + ",j= " + j);
}
  1. 设有如下变量,以下(B)语句编译不存在错误。
    char c = ‘c’; int i = 10; String s =“Hello”;
    A.c=c+i;
    B.s+=i;
    C.i+=s;
    D.c+=s;
    解析:A,运算c+i得到的结果为int型数据,把它赋给char型的变量c就会出现类型不匹配的错误,而B中的复合赋值s+=i,会自动将运算结果转换为s对应的数据类型。C和D中,String类型不能转化成char和int类型

  2. 以下初始化 Java 数组的代码(D)是正确的。
    A. int[] myArray = {“1”,“2”,“3”};
    B. int[] myArray= (5, 4, 3);
    C. int myArray[][] = {1,2,3,4);
    D. int myArray[] = {1,3, 5};

  3. 以下创建二维数组的语句,正确的是(BC)。
    A. char[][] ch=new char[] ;
    B. char ch[][]=new char[3][5];
    C. char[] ch[]=new char[3][];
    D. char[][] ch=new char[][5];
    解析:C是不规则二维数组的创建形式

  4. 给定Java代码,如下:

abstract class Shape {
abstract void draw( );
}

要创建类Shape的子类Circle,以下代码正确的是(BD)。

A. class Circleextends Shape { int draw( ) { }}
B. abstract class Circle extends Shape { }
C. class Circle extends Shape {void draw( ); }
D. class Circle extends Shape {void draw( ) {}}

  1. A 是抽象父类或接口; B类不是抽象类,并继承了或实现了 A 。现有如下声明:
    A a0 = new A();
    A a1 = new B();
    以下说法正确的是(D)
    A. 两行都是错误的
    B. 两行都是正确的
    C. 第1行是正确的
    D. 第2行是正确的
    解析:第二行是一种上溯造型,子类对象可以看作是父类对象,是合法的;第一行,抽象类和接口不能创建对象

  2. 运行结果: 0 1

class Init {
    public Init() {
	StaticTest.x ++;
	StaticTest.y ++;
    }
}
public class StaticTest {
    public static Init init = new Init();
    public static int x = 0;
    public static int y;
    public static void main(String[] args) {
	System.out.println(StaticTest.x);
	System.out.println(StaticTest.y);
    }
}

解析
在这里插入图片描述静态成员变量会按照声明的顺序先依次声明并设置为该数据类型的默认值,但不赋值为初始化的值。
声明完毕后,再按声明的顺序依次设置为初始化的值,如果没有初始化的值就跳过。

  1. 判断题 .类Student 的对象s1和s2,执行语句s2=s1;的结果是将s2中的成员依次赋值为与s1中成员相同的内容。(F)
    解析: 这种赋值只是让两个对象名指向同一内存区域,不会重新创建一个对象
  2. 判断题.this关键字可以在静态成员方法中使用。(F)
  3. 判断题. this用来指向当前对象本身,在创建对象时被赋值当前对象的地址。(T)
  4. 判断题:包是用来管理.java文件的(F)解析:包是用来保存编译后的class文件的,不是.java文件
  5. 类成员变量会被存储在(B),不依赖于对象而存在。
    A. 栈内存
    B. 方法区
    C. 堆内存
    D.主函数
  6. 关于类成员方法的描述,不正确的是(B)。
    A. 类成员方法不依赖于对象而执行
    B. 调用类成员方法只能使用“类名.类成员方法名”这种形式
    C. 类成员方法内只能访问类成员变量
    D. 类成员方法内不 能使用this
    解析:类成员方法也是在类被加载时,就会在方法区分配内存空间,访问方法有:类名.类成员方法名对象名.类成员方法名。
  7. 类Inner是类Outer的内部类,在main()方法中创建Inner对象的语句是
    Outer.Inner in=new Outer().new Inner()。
public class Demo {
  	public static void main(String[] args) {
  	  	________________________// 在此处创建Inner类对象
   		 i.method();
  	}
}
class Outer {
 	 int num = 10;
   	 class Inner {
   	 int num = 20;
   		 public void method(){
   			   ...
  		 }
	 }
}
  1. 设有数组定义:int MyIntArray[] = {10,20,30,40,50,60,70};
    则执行以下语句后输出结果是_120___ 。

int s =0;
for(int i = 0; i<MyIntArray.length;i++) {
if(i%2==1)
s +=MyIntArray[i];
}
System.out.printlin(s);

  1. 关于布局管理器,以下说法中错误的是(C)。
    A. FlowL ayout以由上到下,从左到右的方式排列组件
    B. BorderL ayout将容器分为"东"、“西"、 “南”、 “北"、 "中“五个区域
    C. GridL ayout网格布局中各单元格的大小可以任意调整
    D. 可以通过容器的setL ayout(方法为容器指定布局管理器

  2. 对象数组内存分配过程与普通数组完全一致。(F)
    解析:对象数组的的存储在堆中是链式的

  3. 子类覆盖超类方法时,子类方法必须与超类方法完全一致,包括方法名,参数列表和返回值。(T)

  4. 下列选项中关于super关键字的说法正确的是(A)。
    A. super关键字是在子类对象内部指代其父类对象的引用
    B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类。
    C.子类通过super关键字只能调用父类的方法,而不能访问父类的属性。
    D.子类通过super关键字只能访问父类的属性,而不能调用父类的方法。

  5. 下列关于多态的说法正确的是(ABCD)。
    A. 多态性在现实世界中指同类物体具有多种表现形式
    B. 不同类的对象接收同一个消息后,执行不同的操作,这是多态的体现。
    C. Java语言采用方法重载实现静态多态
    D. Java中多态分为静态多态和动态多态

  6. 关于上溯造型,下列说法正确的是(ABD)。
    A. 类之间可以进行类型转换,但必须限于具有继承关系的类之间。
    B. 取值范围小的类型可以自动转换为取值范围大的类型,而不损失精度。
    C. 类之间不能进行类型转换
    D. 所有引用超类对象的地方都可以使用其子类对象替换

  7. 关于final关键字的使用,错误的说法是(D)。
    A. final关键字修饰类时,说明该类不能被继承。
    B. final关键字修饰方法时,说明该方法不能被子类重写。
    C. final关键字修饰成员变量时,成员变量只能被赋值一次。
    D. final关键字修饰成员变量时,成员变量可以不赋初始值,而使用该数据类型默认值。

  8. 以下关于final关键字说法错误的是(ACD)。
    A. final是Java中的修饰符,可以修饰类、接口、抽象类、方法和属性。
    B. final修饰的类肯定不能被继承
    C. final修饰的成员方法不能被重载
    D. final修饰的变量可以被再次赋值

  9. 关于接口的继承,以下说法正确的是(ABCD)。
    A. 接口可以有继承关系
    B. 子接口允许继承多个父接口
    C. 子接口继承父接口后,自动拥有父接口中的常量和抽象方法
    D. 接口中成员变量为公有静态常量,成员方法都是公有抽象方法

  10. 判断题 .匿名类作为事件监听器类时,要将匿名类的定义、对象的创建以及监听器的注册合并成一条语句。(T)

  11. 判断题 .一个图形界面应用程序只能有一个JFrame。(F)

  12. 当容器使用(A)布局管理器时,容器中组件的大小不会随着容器大小的改变而变化。
    A. FlowLayout
    B. BorderLayout
    C. GridLayout
    D. CardLayout

  13. 判断题 .处理窗口事件时,监听器类可以根据需要来实现监听器接口WindowListener中的一个或多个方法,其他方法可不必实现。(F)

  14. 判断题 .如果一个内部类继承了一个类或实现了一个接口,而且程序中只创建了该类的一个对象,这时可将内部类定义成匿名类。(T)

  15. 多选题 .下列关于lambda表达式的说法,正确的是(ABCD)。
    A.lambda表达式由参数列表、lambda运算符和lambda体构成。
    B. lambda表达式将匿名类的定义、抽象方法的实现、实例的创建融为一体。
    C. lambda表达式可以看成是对匿名类的简化。
    D.lambda表达式与函数式接口紧密相关。

  16. 多选题 .下列的流中,属于输入流的是(BC)。
    A. 从内存流向硬盘的流
    B. 从键盘流向内存的流
    C. 从硬盘流向内存的流
    D. 从内存流向显示器的流

  17. 判断题 .字节输出流的flush()方法将缓冲区的数据输出到目的地后,流也会关闭,不可继续使用。(F)

  18. 下列关于装饰流的说法,错误的是(A)。
    A. 装饰流可以改变实体流的数据内容。
    B. 装饰流可以提高读写效率或者提供更多的读写方式。
    C. 装饰流不能单独使用,必须与实体流或其他装饰流一起使用。
    D. 对象流属于装饰流。

  19. 构造DataInputStream的合适参数是(BC)。
    A. FileReader
    B. BufferedInputStream
    C. FilelnputStream
    D. FileOutputStream

  20. ObjectOutputStream既可以输出对象,也可以输出基本类型的数据(T)

  21. 关系数据库中的数据逻辑结构是(二维表格)。

  22. 下面关于PreparedStatement 的说法错误的是(C)?
    A. PreparedStatement接口继承了Statement接口
    B. PreparedStatement接口的使用可以有效的防止恶意SQL命令的执行
    C. PreparedStatement接口不能用于批量更新的操作
    D. SQL语句被预处理并存储在PreparedStatement对象中

  23. 下列的预编译SQL哪一个选项是正确的(C)?
    A. SELECT * FROM ?;
    B. SELECT ?,?,? FROM emp
    C. SELECT * FROM emp WHERE salary>(?)
    D. 以上都不对

  24. 下列说法中,错误的一项是(A)?
    A. 线程一旦创建,则立即自动执行。
    B. 线程创建后需要调用start()方法,将线程置于就绪状态。
    C. 线程处于就绪状态,意味着它可以被调度。
    D. 调用线程的start()方法后,线程也不一定立即执行。

  25. 关于线程的生命周期,以下状态正确的是(C )?
    A. 新建状态、运行中状态、阻塞状态、定时等待状态、恢复状态和终止状态
    B. 新建状态、运行中状态、阻塞状态、等待状态、恢复状态和终止状态
    C.新建状态、就绪状态、等待状态、定时等待状态、阻塞状态和终止状态
    D. 新建状态、就绪状态、运行状态、等待状态、定时等待状态和终止状态

  26. 判断题 .在Java中,优先级高的线程一定可以获得比优先级低的线程更多的执行机会。(F)

  27. (C)方法的作用是暂停当前线程的执行,等待调用该方法的那个线程结束之后再继续执行?
    A. interrupt()
    B. yield()
    C. join()
    D. sleep()

  28. 下列程序的输出结果是:1 10 5

class Test{
  public static void main(String[] args){
    System.out.print(Thread.MIN_PRIORITY + " ");
    System.out.print(Thread.MAX_PRIORITY + " ");
    System.out.print(Thread.NORM_PRIORITY + " ");
  }
}
  1. 判断题 . 当wait()方法被调用时,当前线程会释放所持有的锁资源,但是一个线程获得了锁,即使调用sleep()方法进入休眠,也不会释放锁。(T)
  2. CP/IP 协议中的 TCP 是哪一层的协议?( C)
    A. 数据链路层
    B. 网络层
    C. 传输层
    D. 应用层
  3. 判断题 .网络通信协议就是指在网络中进行通信的计算机间所需要遵循的各种规则的集合。(T)
  4. 当使用客户端套接字Socket创建对象时,需要指定(B)。
    A. 服务器端口和文件
    B. 服务器主机名称(或IP地址)以及端口
    C. 服务器名称和文件
    D. 服务器地址和文件
  5. 关于Java的Socket编程的描述,错误的是(D)?
    A. 对于一个网络连接来说,套接字是平等的,并无差别,不因为在服务器端或在客户端而产生不同级别。
    B. 端口用一个16位的数字来表示,选择端口时要选择大于1023的端口号,以防发生冲突。
    C. 当连接成功时,服务器和客户端都会生成相应的Socket对象。
    D. ServerSocket的监听方法accept()的返回值类型是ServerSocket
    解析:ServerSocket的监听方法accept()的返回值类型是Socket类型
  6. 下列关于UDP协议的描述正确的是( D)。
    A. UDP是一种面向连接的协议,用于在网络应用程序间建立虚拟线路。
    B. UDP为IP网络中的可靠通信提供错误检测和故障恢复功能
    C. TCP和UDP都是面向连接的协议
    D. UDP服务器必须在约定端口收听服务请求
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Asio otus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值