1.下列叙述错误的是( )
正确答案: C 你的答案: C (正确)
A.java程序的输入输出功能是通过流来实现的
B.java中的流按照处理单位可分成两种:字节流和字符流
C.InputStream是一个基本的输出流类。
D.通过调用相应的close()方法关闭输入输出流
解释:
InputStream是一个基本的字节输入流
2.java中,用( )关键字定义常量?
正确答案: A 你的答案: A (正确)
A.final
B.#define
C.float
D.const
解释:
final关键字
1.final修饰变量,则等同于常量
2.final修饰方法中的参数,称为最终参数。
3.final修饰类,则类不能被继承
4.final修饰方法,则方法不能被重写。
3.在委托事件模型中,源生成事件并把它发送给一个或多个监听器,每个监听器必须向事件源注册。
、
正确答案: A 你的答案: B (错误)
T
F
解释:
当我们点击窗口或按钮等组件,想让程序执行希望的操作时,需要实现该事件对应的事件**接口,也就是告诉程序如果发生这类事件,该怎么处理。单这样还不行,不是谁发生该事件都进行处理,要指明哪个事件源发生该事件才进行处理。因此还需要在事件源上注册该 * * * 对象。这样事件源和事件****** 之间就建立了联系,当事件源发生该事件时,注册在事件源上的 * 对象就能监听到该事件,从而执行事件**的对应方法
4.以下选项中循环结构合法的是:
正确答案: C 你的答案: C (正确)
A.while(int i<7){i++;System.out.println("i is "+i);}
B.int j=3;while(j){ System.out.println("j is "+j);}
C.int j=0;for(int k=0;j+k!=10;j++,k++){System.out.println("j is "+j+“k is” +k);}
D.int j=0; do{System.out.println("j is "+j++);if(j==3){ continue loop;}}while(j<10);
解释:
A、while(int i<7){i++;System.out.println("i is "+i);},int i要放在外面声明;
B、int j=3;while(j){ System.out.println("j is "+j);},java判断处为boolean类型,应该如j= =3,j> 1之类才行 ;不像C中,0可以表示假,非0可以表示真。java的真假就是true和false以及判别式。
C、int j=0;for(int k=0;j+k!=10;j++,k++){System.out.println("j is "+j+“k is” +k);},当j=5,k=5时循环结束;
D、int j=0; do{System.out.println("j is "+j++);if(j==3){continue loop;}}while(j<10);,continue loop前面没有标注出循环名loop,相当于未定义。
5.下面哪个方法是 public void example(){…} 的重载方法? ( )
正确答案: D 你的答案: D (正确)
A.public void Example( int m){…}
B.public int example(){…}
C.public void example2(){…}
D.public int example ( int m, float f){…}
解释:
方法重载要求函数名完全相同,参数列表不同(数量,类型或位置均可),返回值类型不影响。
A和C的函数名与原来函数名不相同。
B的参数列表与原函数列表相同。
因此选D。
6.public interface IService {String NAME="default";}
默认类型等价表示是哪一项:
正确答案: C 你的答案: A (错误)
A.public String NAME=“default”;
B.public static String NAME=“default”;
C.public static final String NAME=“default”;
D.private String NAME=“default”;
解释:
接口中的成员包括:全局常量和抽象方法。接口中的成员都有固定的修饰符, 成员变量:public static final 成员方法:public abstract 接口中的成员的访问权限都是公共的,接口中可以隐藏不写这些固定的修饰符。接口不可以实例化,只有子类重写了接口中的所有方法后,子类才可以实例化,否则子类还是一个抽象类。子类重写方法的访问权限都是public的。
7.list是一个ArrayList的对象,哪个选项的代码填到//todo delete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?()
Iterator it = list.iterator();
int index = 0;
while (it.hasNext())
{
Object obj = it.next();
if (needDelete(obj)) //needDelete返回boolean,决定是否要删除
{
//todo delete
}
index ++;
}
正确答案: A 你的答案: A (正确)
A.it.remove();
B.list.remove(obj);
C.list.remove(index);
D.list.remove(obj,index);
解释:
ArrayList 继承了 AbstractList, 其中AbstractList 中有个modCount 代表了集合修改的次数。在ArrayList的iterator方法中会判断 expectedModCount与 modCount是否相等,如果相等继续执行,不相等报错,只有iterator的remove方***在调用自身的remove之后让 expectedModCount与modCount再相等,所以是安全的。
8.在java7中,下列哪个说法是正确的:
正确答案: D 你的答案: B (错误)
A.ConcurrentHashMap使用synchronized关键字保证线程安全
B.HashMap实现了Collection接口
C.Arrays.asList方法返回java.util.ArrayList对象
D.SimpleDateFormat对象是线程不安全的
解释:
hashMap在单线程中使用大大提高效率,在多线程的情况下使用hashTable来确保安全。hashTable中使用synchronized关键字来实现安全机制,但是synchronized是对整张hash表进行锁定即让线程独享整张hash表,在安全同时造成了浪费。concurrentHashMap采用分段加锁的机制来确保安全
9.在java中重写方法应遵循规则的包括()
正确答案: B C 你的答案: A C (错误)
A.访问修饰符的限制一定要大于被重写方法的访问修饰符
B.可以有不同的访问修饰符
C.参数列表必须完全与被重写的方法相同
D.必须具有不同的参数列表
解释:
方法的重写(override)两同两小一大原则:
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。
10.下面有关 JAVA 异常类的描述,说法正确的有()
正确答案: A B C 你的答案: A B C (正确)
A.异常的继承结构:基类为 Throwable,Error 和 Exception 。实现 Throwable, RuntimeException 和 IOException 等继承 Exception
B.非 RuntimeException 一般是外部错误(不考虑Error的情况下),其可以在当前类被 try{}catch 语句块所捕获
C.Error 类体系描述了 Java 运行系统中的内部错误以及资源耗尽的情形,Error 不需要捕捉
D.RuntimeException 体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须 被 try{}catch 语句块所捕获
解释:
1)系统错误(system error)是由Java虚拟机抛出的,用Error类表示。Error类描述的是内部系统错误。这样的错误很少发生。如果发生,除了通知用户以及尽量稳妥地终止程序外,几乎什么都不能做。
2)异常(exception)是用Exception类表示的,它描述的是由程序和外部环境所引起的错误,这些错误能被程序捕获和处理。
3)运行时异常(runtime exception)是用RuntimeException类表示的,它描述的是程序设计错误。运行时异常通常是由Java虚拟机抛出的。