zoukankan      html  css  js  c++  java
  • 3.3测试复盘

    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)保留的字符数为()
    ```java
    	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
  • 相关阅读:
    RabbitMQ + topic发送消息+python
    maven下载依赖jar包失败处理方法--下载jar包到本地并安装到maven仓库中
    Jmeter--thrift接口压测
    将jar文件加到maven的local repository中
    在Mac机器上给ITerm2配置lrzsz,便捷的传输文件到远程服务器上
    linux iptables 开启和关闭服务端口号
    centos 安装PGSQL
    pgsql 常用的命令
    web压力测试工具
    centos安装 mysql
  • 原文地址:https://www.cnblogs.com/l999q/p/12405731.html
Copyright © 2011-2022 走看看