错题802-java

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对。
 
 
原文地址:https://www.cnblogs.com/shenxiaoquan/p/5731109.html