8-12错题本

1.下面不属于java.lang.RuntimeException子类的是( D )。

A. java.lang.NullPointerException

B. java.lang.ArrayIndexOutOfException

C. java.lang.IllegalArgumentException

D. java.lang.ClassNotFoundException

3调用下面的测试代码( C )。

public static void main(String[] args) throws Exception {

EmpService empService = new EmpService();

empService.checkEmp();

}

控制台提示如下异常信息:

Exception in thread "main" thre.ServiceException: 服务异常

at thre.EmpServic.checkEmp(EmpServic.java:9)

at thre.CoreTest.main(CoreTest.java:16)

Caused by: thre.DAOException: 数据访问失败

at thre.EmpDAO.getEmp(EmpDAO.java:7)

at thre.EmpServiccheckEmp(EmpServicjava:7)

... 1 more

下列正确的推断的是:

A. ServiceExcepiton一定是RuntimeException的子类

B. ServiceException一定不是RuntimeException的子类

C. EmpService的checkEmp方法抛出异常ServiceException

的原因是由于其调用的EmpDAO的getEmp方法抛出了DAOException

D. EmpDAO的getEmp方法抛出异常DAOException

的原因是由于其调用的EmpService的checkEmp方法抛出了ServiceException

非运行时异常抛出的时候必须在方法上声明

  1. 以下代码运行输出是( D )

public class Animal{

private String name =”Joan”;

int age = 0;

}

public class Dog extends Animal{

public String color;

public static void main(String[] args){

Animal ani = new Dog();

System.out.println(ani.name);

}

}

A. 没有输出

B. 输出: Joan

C. 运行报错

D. 编译报错

私有变量出了本类就无法访问,所以编译不能通过

7.下面程序不抛出异常且可以输出理应的精确运算结果是( )。

A. BigDecimal b1 = new BigDecimal(3);

BigDecimal b2 = new BigDecimal(2.9);

BigDecimal b3 = b1.subtract(b2);

System.out.println(b3);

B. BigDecimal b1 = new BigDecimal("1");

BigDecimal b2 = new BigDecimal("3");

BigDecimal b3 = b1.divide(b2);

System.out.println(b3);

C. BigDecimal b1 = new BigDecimal(0.1);

BigDecimal b2 = new BigDecimal(0.2);

BigDecimal b3 = b1.add(b2);

System.out.println(b3);

D. BigDecimal b1 = new BigDecimal(“3”);

BigDecimal b2 = new BigDecimal(“2.9”);

BigDecimal b3 = b1.subtract(b2);

System.out.println(b3);

BigDecimal 只有使用字符串才会不出现精度丢失

9 关于自定义异常类MyException的实现如下,若该段代码正常运行,则以下说法正确的是(C)。

private String detail;

public MyException(String message) {

detail = message;

}

public String toString() {

return "MyException[" + detail + "]";

}

public class People {

private int num = 0;

public void setnum(int value){

if ((value<0)||(value>100)){

throw new MyException("Out of bound.value= "+value);

}

}

}

public static void main(String[] args) {

try {

throw new MyException("An Exception occurred~"); 抛出异常

} catch (MyException e) { 马上捕获到

System.out.println(e);

}

try {

People p = new People();

p.setnum(102);

} catch (MyException e1) {

System.out.println(e1);

}

}

A. 输出结果为 MyException[]

B. MyException[Out of bound.value= 102]

C. MyException属于Runtime异常

D. MyExcption属于checked异常

E. 输出结果为MyException[An Exception occurred~]

10.以下哪个为真 (CD )

Integer a = new Integer(9);

Integer b = new Integer(9);

Long c = new Long(9);

A. a==b

B. b==c

C. a.equals(b)

D. b.equals(new Interger(9))

  1. 已知变量a和obj的定义如下:

Object[] a1 = { "a", "b", "c" };

Object obj = a1;

则下面语句运行时会抛出异常的是( )。

A. Object[] a2 = (Object[])obj;

B. String str1 = (String)((Object[])obj)[1]

C. String[] a3 = (String[])obj 数组没有继承关系

D. String str2 = (String)a1[2]

  1. 关于下面程序片段,( B )的结论是正确.

String a =”Java”;

String b=”Java”;

String x =”Ja”;

String y = “va”;

String c = x+y;

A. a和b指向同一个实例对象,a和c指向同一个实例对象

B. a和b指向同一个实例对象,a和c不指向同一个实例对象

C. a和b不指向同一个实例对象,a和c指向同一个实例对象

D. a和b不指向同一个实例对象,a和c不指向同一个实例对象

字符串相加会创建一个新的对象

19.下列代码运行的结果是( B )

public class Example{

  String str=new String("good");

  char[]ch={'a','b','c'};

  public static void main(String args[]){

    Example ex=new Example();

    ex.change(ex.str,ex.ch);

    System.out.print(ex.str+" and "+ex.ch);

  }

  public void change(String str,char ch[]){

    str="test ok";

    ch[0]='g';

  }

}

A、 good and abc

B、 good and gbc

C、test ok and abc

D、 test ok and gbc

//str 和 ex.str不是同一个,只是暂时的把ex.str的值也就是地址码给了str,str改了的话对ex.str没有影响,但是数组也是这样,但是数组没有创建新的空间,而是直接把原来地址的值改了。

  1. 要创建一个新的目录,可以使用下面( B )类实现。

A、 FileInputStream

B、 FileOutputStream

C、 FileWriter

D、 File

\21. 下面代码用于输出字符数组ch中每个字符出现的次数,应该填入的代码是**(** C**)**

public static void main(String[] args){

char[] ch = {‘a’,’b’,’c’,’a’,’c’};

HashMap map = new HashMap();

for(int i =0 ; i < ch.length; i++){

<填入代码>

}

System.out.println(map);

}

A、 if(map.contains(ch[i])){

map.put(ch[i],map.get(ch[i]) + 1);

}else{

map.put(ch[i],1);

}

B、 if(map.contains(ch[i])){

map.put(ch[i],(Integer)map.get(ch[i]) + 1);

} else{

map.put(ch[i],1);

}

C、 if(map.containsKey(ch[i])){

map.put(ch[i],(int)map.get(ch[i]) + 1);

} else{

map.put(ch[i],1);

}

D、 if(map.containsValues(ch[i])){

map.put(ch[i],(int)map.get(ch[i]) + 1);

} else{

map.put(ch[i],1);

}

22. 阅读下面代码,选择正确的答案 ( B )

import java.util.*;

public class TestListSet{

public static void main(String args[]){

List list = new ArrayList();

list.add(“Hello”);

list.add(“Suke”);

list.add(“Hello”);

list.add(“Welcome”);

list.add(“hello”);

Set set = new HashSet();

set.addAll(list);

System.out.println(set.size());

}

}

A、编译时将产生错误

B、正常运行,输出结果: 4

C、正常运行,输出结果: 3

D、正常运行,输出结果: 5

没注意还有Set。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值