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
非运行时异常抛出的时候必须在方法上声明
-
以下代码运行输出是( 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))
-
已知变量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]
-
关于下面程序片段,( 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没有影响,但是数组也是这样,但是数组没有创建新的空间,而是直接把原来地址的值改了。
-
要创建一个新的目录,可以使用下面( 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。。