Java SE错题笔记(第三阶段)

这是一篇关于Java SE基础知识的练习题解析,涵盖了字符串、变量初始化、集合框架、线程、IO、异常处理等多个核心概念。题目涉及了String类型的使用、变量的初始化规则、集合操作、线程状态与控制、数据类型转换、文件操作等方面,通过这些题目,可以帮助读者巩固和理解Java编程基础。
摘要由CSDN通过智能技术生成

 

1.(单选题)以下代码的输出结果是()

public class Test {

 public static void main(String[] args) {

String str = NULL;

System.out.println(str);

    }

}

A.NULL 

B.代码不能通过编译 

C.没有输出结果

D.运行时出错 

【正确答案】B。

【答案解析】String类型变量取值应为小写null或其他用""双引号括起来的内容。若为小写的null,输出也为null。

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

public class foo {

static String s;

public static void main (String[]args) {

System.out.println ("s=" + s);

  }

}

A.输出结果为"s=" 

B.输出结果为"s=null" 

C.编译出错,因为 s 没有初始化。 

D.编译出错,因为 s 没有被定义。 

【正确答案】B

【答案解析】String 为引用数据类型,引用类型数据成员的默认值为 null。

package string;

public class StringDemo2 {
	String str;
	static String s;
	public static void main(String[] args) {
		System.out.println(s);//null
		System.out.println(new StringDemo2().str);//null
	}

}

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

import java.util.*;

public class ShortSet{

public static void main(String args[]){

Set<Short> s=new HashSet<Short>();

  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类型对象。

4.(单选题)关于以下代码描述正确的有( )

public class Cats {

public static void main(String args[]) {

List<Cat> cats = new ArrayList<Cat>();

cats.add(new Cat());

Animal b = new Animal();

Cat a = null;

if(b instanceof Animal) 

a = (Cat)b;

if(a != null)

cats.add(a);

System.out.println(cats.size() +"cats");

  }

}

class Animal {}

class Cat extends Animal{}

A.编译失败 

B.输出1 cats 

C.输出2 cats 

D.运行时抛出异常 

【正确答案】D

【答案解析】a = (Cat)b;处抛出java.lang.ClassCastException异常,b为Animal类型,并且具体引用对象是Animal对象,不能强转成Cat类型。如果把Animal b = new Animal();改为Animal b = new Cat();向上造型,就可以输出 2 cats了。最后强调一下,没有向上造型就没有向下造型。

5.(单选题)请选出下列正确的答案( )

1. import java.util.*;

2. public class WrappedString {

3. private String s;

4. public WrappedString(String s) { this.s = s; }

5. public static void main(String[] args) {

6. HashSet<Object> hs = new HashSet<Object>();

7. WrappedString ws1 = new WrappedString("aardvark");

8. WrappedString ws2 = new WrappedString("aardvark");

9. String s1 = new String("aardvark");

10. String s2 = new String("aardvark");

11. hs.add(ws1); hs.add(ws2); hs.add(s1); hs.add(s2);

12. System.out.println(hs.size()); } }

A.1 

B.4 

C.2 

D.3 

【正确答案】D

【答案解析】HashSet集合里面存储的元素是无序的且不重复的,本题中的是s1和s2两个对象在底层判断时返回的相关信息被视为相同元素,所以最终结果集合中值有3个元素。存的两个对象为不同的引用,不算重复。

6.(单选题)下面哪个是链式存储并快速顺序(不需要随机访问)访问的集合类型( )

A.java.util.LinkedList 

B.java.util.Queue 

C.java.util.ArrayList 

D.java.util.LinearList 

【正确答案】B

【答案解析】请参考集合队列的结构特点及元素的存取

7.(多选题)关于 Java 语言,下列描述正确的是( )

A.switch不能够作用在String类型上 

B.List, Set, Map都继承自Collection接口 

C.Java语言支持goto语句 

D.GC是垃圾收集器,程序员不用担心内存管理 

【正确答案】A,D

【答案解析】B. Map没有继承Collection接口; C. java不支持goto语句。

8.(单选题)关于 sleep()和 wait(),以下描述错误的一项是( )

A.sleep 是线程类(Thread)的方法,wait 是 Object 类的方法 

B.sleep 不释放对象锁,wait 放弃对象锁 

C.sleep 暂停线程、但监控状态仍然保持,结束后会自动恢复 

D.wait 后进入等待锁定池,只有针对此对象发出 notify 方法后获得对象锁进入运行状态 

【正确答案】D

【答案解析】sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控 状态依然保持,到时后会自动恢复。调用 sleep 不会释放对象锁。 wait 是 Object 类的方法,对此对象调用 wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出 notify 方法(或 notifyAll)后本线程才进入对象锁定池准备获得对 象锁进入运行状态。

9.(单选题)方法 resume()负责恢复哪些线程的执行( )

A.通过调用 stop()方法而停止的线程。 

B.通过调用 sleep()方法而停止的线程。 

C.通过调用 wait()方法而停止的线程。 

D.通过调用 s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值