首页 > 其他 > 详细

3.3测试补题

时间:2020-03-04 00:52:36      阅读:96      评论:0      收藏:0      [点我收藏+]

volatile关键字的说法错误的是()
A. 能保证线程安全
B. volatile关键字用在多线程同步中,可保证读取的可见性
C. JVM保证从主内存加载到线程工作内存的值是最新的
D. volatile能禁止进行指令重排序

**解析:volatile不能保证原子性,也就不能保证线程安全。**
答案:A
  • java语言的下面几种数组负责方法中,哪个效率最高?
    A. for 循环逐一复制
    B. System.arraycopy
    C. Array.copyOf
    D. 使用clone方法

    解析:复制的效率System.arraycopy>clone>Arrays.copyOf>for循环
    答案:B

  • 假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果不可能是()

      boolean isOdd = false;
    
      for(int i=1;i<=2;++i)
      {
          if(i%2==1)isOdd = true;
          else isOdd = false;
          a+=i*(isOdd?1:-1);
      }

    A. -1
    B. -2
    C. 0
    D. 1

    解析:每个线程对a 均做了两次读写操作,分别是 “ +1 ” 和 “ -2 ”,所以a的可能取值为-1、0、-2。
    答案:D

  • 下面哪个不是标准Statement类?
    A. Statement
    B. PreparedStatement
    C. CallableStatement
    D. BatchedStatement

    解析:Statement在JDBC中相当于SQL语句的载体
    A,Statement是最基本的用法,采用字符串拼接的方式,存在注入漏洞
    B,PreparedStatement对Statement中的SQL语句进行预编译,同时检查合法性,效率高
    C,CallableStatement接口扩展 PreparedStatement,用来调用存储过程,它提供了对输出和输入/输出参数的支持。CallableStatement 接口还具有对 PreparedStatement 接口提供的输入参数的支持。

    答案:D

  • 假定str0,...,str4后序代码都是只读引用。Java 7中,以上述代码为基础,在发生过一次FullGC后,上述代码在Heap空间(不包括PermGen)保留的字符数为()

      static String str0="0123456789";
      static String str1="0123456789";
      String str2=str1.substring(5);
      String str3=new String(str2);
      String str4=new String(str3.toCharArray());
      str0=null;

    A. 5
    B. 10
    C. 15
    D. 20

    解析:str1在常量池里,常量池是在PermGen中,不属于Heap空间
    答案:C

  • Java.Thread的方法resume()负责重新开始被一下哪个方法中断的线程的执行()
    A. stop
    B. sleep
    C. wait
    D. suspend

    答案:D

  • 关于异常的编程,以下描述错误的是:()
    A. 在有除法存在的代码处,为了防止分母为零,必须抛出并捕获异常
    B. int i=Integer.parseInt(”123a”);将产生NumberFormatException
    C. int a[]=null; a[0]=1; 将产生NullPointerException
    D. 输入输出流编程中,读和写时都要抛出IOException

    解析:分母为0 为运行时异常,jvm帮我们补货,无需代码里面显式捕获
    答案:A

  • 关于ASCII码和ANSI码,以下说法不正确的是()?
    A. 标准ASCII只使用7个bit
    B. 在简体中文的Windows系统中,ANSI就是GB2312
    C. ASCII码是ANSI码的子集
    D. ASCII码都是可打印字符

    解析:ASCII码包含一些特殊空字符
    答案:D

  • 下面哪种情况会导致持久区jvm堆内存溢出?
    A. 循环上万次的字符串处理
    B. 在一段代码内申请上百M甚至上G的内存
    C. 使用CGLib技术直接操作字节码运行,生成大量的动态类
    D. 不断创建对象

    解析: http://blog.csdn.net/sivyer123/article/details/17139443
    持久代溢出原因 动态加载了大量Java类而导致溢出

    答案:C

  • 抽象类方法的访问权限默认都是public的(×)

  • 对于子类的构造函数说明,下列叙述中错误的是()
    A. 子类不能继承父类的无参构造函数。
    B. 子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。
    C. 在创建子类的对象时,若不含带参构造函数,将先执行父类的无参构造函数,然后再执行自己的无参构造函数。
    D. 子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。

    解析:构造函数不能被继承,构造方法只能被显式或隐式的调用。
    答案:D

3.3测试补题

原文:https://www.cnblogs.com/l999q/p/12405731.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!