1.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:it.remove();
B:list.remove(obj);
C:list.remove(index);
D:list.remove(obj,index);正确答案是 A。 2.在运行时,由java解释器自动引入,而不用import语句引入的包是()。
A:java.lang
B:java.system
c:java.io
d:java.util正确答案是:A。解析:
java.lang包是java语言包,是自动导入的。
java.util包是java的工具包,需要手动导入。
java.sql包,JDBC接口类,需要手动导入。
java.io;各种输入输入流,需要手动导入。
3.下面有关servlet service描述错误的是?
A;不管是post还是get方法提交过来的连接,都会在service中处理
B:doGet/doPost 则是在 javax.servlet.GenericServlet 中实现的
C:service()是在javax.servlet.Servlet接口中定义的
D:service判断请求类型,决定是调用doGet还是doPost方法 正确答案是:B。 解析:
service()是在javax.servlet.Servlet接口中定义的, 在 javax.servlet.GenericServlet 中实现了这个接口。
而 doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的, javax.servlet.http.HttpServlet 是 javax.servlet.GenericServlet 的子类。
所有可以这样理解, 其实所有的请求均首先由 service() 进行处理, 而在 javax.servlet.http.HttpServlet 的 service() 方法中, 主要做的事情就是判断请求类型是 Get 还是 Post, 然后调用对应的 doGet/doPost 执行。
4.下列正确的有( )
A:call by value不会改变实际参数的数值
B:call by reference能改变实际参数的参考地址
c:call by reference不能改变实际参数的参考地址
D:call by reference能改变实际参数的内容
正确答案是:A,C,D.
解析:call by value是值传递
call by reference是引用传递。
5.关于ThreadLocal以下说法正确的是()
A:ThreadLocal继承自Thread
B:ThreadLocal实现了Runnable接口
C:ThreadLocal重要作用在于多线程间的数据共享
D:ThreadLocal是采用哈希表的方式来为每个线程都提供一个变量的副本
E:ThreadLocal保证各个线程间数据安全,每个线程的数据不会被另外线程访问和破坏
正确答案是:D,E
解析:
(1)、ThreadLocal的类声明:
public class ThreadLocal<T>
可以看出ThreadLocal并没有继承自Thread,也没有实现Runnable接口。所以AB都不对。
(2)、ThreadLocal类为每一个线程都维护了自己独有的变量拷贝。每个线程都拥有了自己独立的一个变量。
所以ThreadLocal重要作用并不在于多线程间的数据共享,而是数据的独立,C选项错。
由于每个线程在访问该变量时,读取和修改的,都是自己独有的那一份变量拷贝,不会被其他线程访问,
变量被彻底封闭在每个访问的线程中。所以E对。
(3)、ThreadLocal中定义了一个哈希表用于为每个线程都提供一个变量的副本:
static class ThreadLocalMap {
static class Entry extends WeakReference<ThreadLocal> {
/** The value associated with this ThreadLocal. */
Object value;
Entry(ThreadLocal k, Object v) {
super(k);
value = v;
}
}
/**
* The table, resized as necessary.
* table.length MUST always be a power of two.
*/
private Entry[] table;
}
所以D对。