zoukankan      html  css  js  c++  java
  • 错题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对。
     
     
  • 相关阅读:
    在win7系统下安装把Ubuntu17.04安装在另一个硬盘开机无法进入Ubuntu问题的一种解决办法。【转】
    快速上手Ubuntu之安装篇——安装win7,Ubuntu16.04双系统【转】
    win7 64位系统与Ubuntu14.04 64位系统双系统安装【转】
    kernel中对文件的读写【学习笔记】【原创】
    快速解决Android中的selinux权限问题【转】
    Android如何配置init.rc中的开机启动进程(service)【转】
    linux内核驱动中对文件的读写 【转】
    很好的 DHCP协议与dhcpcd分析【转】
    android DHCP流程【转】
    Android wifi 从连接态自动断开的解决办法(dhcp导致)【转】
  • 原文地址:https://www.cnblogs.com/shenxiaoquan/p/5731109.html
Copyright © 2011-2022 走看看