java复盘8

java测试复盘8

  1. angularjs1使用了mvc进行web开发,其中控制层一般用什么语言来定义(A)
    A. javascript
    B. html
    C. css
    D. jquery

解析:mvc:model对应html view对应css control对应JavaScript

  1. 以下为一段浏览器中可运行的Javascript 代码,则运行该段Javascript代码的页面弹出框中显示的结果是:(D)
var obj = {"key":"1","value":"2"};
var newObj = obj;
newObj.value += obj.key;
alert(obj.value);

A.2
B.12
C.3
D.21

解析:D 字符串”2“ + ”1“ -> “21”

  1. @SuppressWarnings(“deprecation”)的功能是什么?(A)
    A.屏蔽不赞同使用的类和方法的警告
    B.屏蔽在强制类型转换的时候编译器给出的警告
    C.关闭所有警告信息
    D.当在可序列化的类上缺少serialVersionUID定义的警告

解析:1.Java三大注解分别是@Override @Deprecated @Suppresswarnings
2.@Override 注解表名子类中覆盖了超类中的某个方法,如果写错了覆盖形式,编译器会报错
3.@Deprecated 表明不希望别人在以后使用这个类,方法,变量等等
4.@Suppresswarnings 达到抑制编译器产生警告的目的,但是不建议使用,因为后期编码人员看不懂编译器提示的警告,不能更好的选择更好的类去完成任务

  1. 下面的输出结果:(D)
(function() {
      var a = b = 5;
  })();   
console.log(b);
console.log(a);

解析:首先分析 var a = b = 3 可以拆分为 b = 3 ,b是全局变量,在立即执行函数里赋值为3,var a = b,a是立即执行函数里声明的变量,函数执行完a就被释放,并没有生成全局变量a,所以在全局输出a会报错:a is not defined

  1. 下列选项中,不属于CSS3样式选择器的是( D )
    A.empty选择器
    B.root 选择器
    C.target选择器
    D.ID选择器
    解析:ID选择器在css1中就定义了

  2. HTML里的哪一部分Javascript 会在页面加载的时候被执行(D)
    A : 文件头部
    B : 文件尾
    C : 标签部分
    D : 标签部分
    解析:head和头部引进的script脚本最先加载并执行,而onload是最后执行的,处于和中的元素是在页面加载的时候被执行的。

  3. 对文件名为Test.java的java代码描述正确的是©

class Person {
    String name = "No name";
    public Person(String nm) {
        name = nm;
    }
}
class Employee extends Person {
    String empID = "0000";
    public Employee(String id) {
        empID = id;
    }
}
public class Test {
    public static void main(String args[]) {
        Employee e = new Employee("123");
        System.out.println(e.empID);
    }
}

A.输出:0000
B.输出:123
C.编译报错
D.输出:No name
解析:父类没有无参的构造函数,所以子类需要在自己的构造函数中显式调用父类的构造函数,
添加
super(“nm”);
否则报错:
Implicit super constructor Person() is undefined. Must explicitly invoke another constructor

  1. 在 myjsp.jsp 中,关于下面的代码说法错误的是: ( A )
    <%@ page language=“java” import=“java.util.*” errorPage=“error.jsp” isErrorPage=“false” %>
    A.该页面可以使用 exception 对象
    B.该页面发生异常会转向 error.jsp
    C.存在 errorPage 属性时,isErrorPage 是默认为 false
    D.error.jsp 页面一定要有isErrorPage 属性且值为 true

解析:exception是JSP九大内置对象之一,其实例代表其他页面的异常和错误。只有当页面是错误处理页面时,即isErroePage为 true时,该对象才可以使用。对于C项,errorPage的实质就是JSP的异常处理机制,发生异常时才会跳转到 errorPage指定的页面,没必要给errorPage再设置一个errorPage。所以当errorPage属性存在时, isErrorPage属性值为false

  1. 如何规避javascript多人开发函数重名问题?(AB)
    A.可以通过命名规范,比如根据不同的开发人员实现的功能,在函数名加前缀
    B.每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为C.是要类.函数名来调用,所以也减少了重复的可能性
    D.以上答案都不正确
    解析:暂无

  2. 关于HashMap和Hashtable正确的说法有(AC)
    A.都实现了Map接口
    B.Hashtable类不是同步的,而HashMap类是同步的
    C.Hashtable不允许null键或值
    D.HashMap不允许null或值
    解析:两者都是实现了Map接口,HashMap不是同步的,Hashtable是同步的(内部除构造方法以外的所有方法都加了sychronized关键字来保证同步),另外HashMap允许至多有一个null的key值,null值的value则是几个都随意,但是Hashtable则是不允许null键或者null的value出现

  3. 下面描述属于java虚拟机功能的是?(ABCD)
    A.通过 ClassLoader 寻找和装载 class 文件
    B.解释字节码成为指令并执行,提供 class 文件的运行环境
    C.进行运行期间垃圾回收
    D.提供与硬件交互的平台
    解析:ABC不用解释 D 虚拟机是运行在操作系统之上的,不与硬件交互

  4. 下面哪些特性不是HTML5新引入的特性:( CE )
    A.audio和video支持
    B.Canvas
    C.AJAX
    D.localStorage
    E.ES6
    F.WebSocket
    解析:WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

  5. this对象的理解正确的是 (ABD)
    A.在不手动改变this指向的前提下,this总是指向函数的直接调用对象
    B.如果有new关键字,this指向new出来的那个对象
    C.this总是指向函数的非间接调用者
    D.IE中attachEvent中的this总是指向全局对象window
    解析:1.在事件中,this指向触发这个事件的对象(特殊的是:IE中的attachEvent中的this总是指向全局对象window)。
    2.this总是指向函数的直接调用者(而非间接调用者)
    3.new后面就是构造函数,构造函数中的this指向的就是当前的对象

  6. 关于Java中的ClassLoader下面的哪些描述是错误的:( BDF )
    A.默认情况下,Java应用启动过程涉及三个ClassLoader: Boostrap, Extension, System
    B.一般的情况不同ClassLoader装载的类是不相同的,但接口类例外,对于同一接口所有C类装载器装载所获得的类是相同的
    C.类装载器需要保证类装载过程的线程安全
    D.ClassLoader的loadClass在装载一个类时,如果该类不存在它将返回null
    E.ClassLoader的父子结构中,默认装载采用了父优先
    F.所有ClassLoader装载的类都来自CLASSPATH环境指定的路径
    解析:A、java中类的加载有5个过程,加载、验证、准备、解析、初始化;这便是类加载的5个过程,而类加载器的任务是根据一个类的全限定名来读取此类的二进制字节流到JVM中,然后转换为一个与目标类对应的java.lang.Class对象实例,在虚拟机提供了3种类加载器,引导(Bootstrap)类加载器、扩展(Extension)类加载器、系统(System)类加载器(也称应用类加载器)。A正确
    B、一个类,由不同的类加载器实例加载的话,会在方法区产生两个不同的类,彼此不可见,并且在堆中生成不同Class实例。所以B前面部分是正确的,后面接口的部分真的没有尝试过,
    C、类加载器是肯定要保证线程安全的;C正确
    D、装载一个不存在的类的时候,因为采用的双亲加载模式,所以强制加载会直接报错,D错误
    java.lang.SecurityException: Prohibited package name: java.lang
    E、双亲委派模式是在Java 1.2后引入的,其工作原理的是,如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式,即每个儿子都很懒,每次有活就丢给父亲去干,直到父亲说这件事我也干不了时,儿子自己想办法去完成,所以默认是父装载,E正确
    F、自定义类加载器实现 继承ClassLoader后重写了findClass方法加载指定路径上的class,F错误

  7. 请问在javascript程序中, alert(undefined==null)的输出结果是C
    A.undefined
    B.null
    C.true
    D.0
    解析:ECMAScript认为undefined是从null派生出来的,因此将它们定义为不严格意义上的相等,即undefined等于null。

  8. 以下代码执行后,result 的值是:B
    var result = Math.round(11.5) + Math.round(-11.5);
    A.0
    B.1
    C. -1
    解析:所以该题Math.round(11.5)=12,Math.round(-11.5)=-11,两者相加为1;

  9. 以下哪个不能用来处理线程安全(D)
    A.synchronized关键字
    B.volatile关键字
    C.Lock类
    D.transient关键字
    解析:transient,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。当一个变量不希望被持久化的时候,比如说一些账号密码,就可以用transient关键字来表示该变量不参与序列化过程。

  10. ArrayList list = new ArrayList(20);中的list扩充几次(A)
    A.0
    B.1
    C.2
    D.3
    解析:ArrayList list=new ArrayList(); 这种是默认创建大小为10的数组,每次扩容大小为1.5倍
    ArrayList list=new ArrayList(20); 这种是指定数组大小的创建,创建时直接分配其大小,没有扩充。
    所以,扩充为0次

  11. 静态变量static在不同的实例中地址是否一样?他们储存在什么区域?()
    A.地址一样,在堆栈区。
    B.地址不一样,在堆栈区。
    C.地址一样,在全局区。
    D.地址不一样,在全局区。
    解析:应是c.静态变量,即类变量,实例共享,内存中唯一,存储在方法区当中

  12. 以下 HTML 文本中,内容 ”test” 的字体大小是:C

<style>
p{font-size:12px}
#content p{font-size:13px}
.article{font-size:14px}
p.article{font-size:15px}
</style>
<div id=”content”>
<p class=”article”>test</p>
</div>

A.14px
B.15px
C.13px
D.12px
解析:主要考察优先级问题

  1. Given the following code:B
public class Test {
    private static int j = 0; 
    private static Boolean methodB(int k) {
        j += k;
        return true;
    } 
    public static void methodA(int i) {
        boolean b;
        b = i < 10 | methodB(4);
        b = i < 10 || methodB(8);
    }
    public static void main(String args[]) {
        methodA(0);
        System.out.println(j);
    }
}

What is the result?
A.The program prints”0”
B.The program prints”4”
C. The program prints”8”
D. The program prints”12”
E.The code does not complete.
解析:这道题主要考的是"|“与”||"的区别
用法:condition 1 | condition 2、condition 1 || condition 2
"|"是按位或:先判断条件1,不管条件1是否可以决定结果(这里决定结果为true),都会执行条件2
"||"是逻辑或:先判断条件1,如果条件1可以决定结果(这里决定结果为true),那么就不会执行条件2

  1. WaitForSingleObject 有几种返回值的可能(D)
    A.1
    B.2
    C.3
    D.>=4
    解析:暂无

  2. 以下分析以下代码说法正确的是:( ACD)

<html>
<head>
 <script type="text/javascript">
  function writeIt (value) { document.myfm.first_text.value=value;}
 </script>
</head>
<body bgcolor="#ffffff">
 <form name="myfm">
  <input type="text" name="first_text">
  <input type="text" name="second_text" onchange="writeIt(value)">
 </form>
</body>
</html>

A.在页面的第二个文本框中输入内容后,当光标离开第二个文本框时,第一个文本框的内容不变
B.在页面的第一个文本框中输入内容后,当光标离开第一个文本框时,将在第二个文本框中复制第一个文本框的内容
C.在页面的第二个文本框中输入内容后,当光标离开第二个文本框时,将在第一个文本框中复制第二个文本框的内容
D.在页面的第一个文本框中输入内容后,当光标离开第一个文本框时,第二个文本框的内容不变
解析 :onchange 是失去焦点且内容改变才会执行函数~
onblur 只要失去焦点 就会执行函数~~
对应到题目中,第二个input的value发生改变且失去焦点才执行函数writeIt,如果内容不变则不执行~
相反onblur不论内容是否改变,只要失去焦点,都会执行writeIt函数~
具体到题目,onblur和onchange表现出的效果一样,但onchange效率高,onblur性能低~

  1. 不能用来修饰interface的有( )(仅限外部接口)
    A.private
    B.public
    C.protected
    D.static
    解析:记住接口中的方法都是public abstract类型的,变量都是public static final类型的,既然方法字段都是public类型的,就是为了让所有的类、包使用的,所以自然需要使用public去修饰了。

  2. 以下属于JS基本数据类型的选项是 (ABD)[不定项选择题]
    A.undefined
    B.number
    C.interface
    D.symbol
    解析:js中有5种数据类型:Undefined、Null、Boolean、Number和String。
    还有一种复杂的数据类型Object,Object本质是一组无序的名值对组成的。
    Undefined类型只有一个值,即undefined,使用var声明变量,但是未对初始化的,这个变量就是Undefined类型的

  3. 关于label元素,以下说法正确的有:
    A.label元素可以使用for属性关联表单控件,也可以将表单控件放置在它的内部
    B.当使用for属性来关联label元素和表单控件时,label元素的for属性要和表单控件的ID一致
    C.如果label元素内嵌套一个a链接,则点击该a链接不会触发页面跳转
    D.label元素内部可以嵌套另一个label元素
    解析:定义和用法

  4. 修改以下哪些CSS属性会导致回流(reflow)?(BCD)
    A.color
    B.width
    C.display
    D.font-size
    解析:导致回流发生的因素
    调整窗口大小,浏览器窗口尺寸改变——resize事件发生时
    元素尺寸改变——边距、填充、边框、宽度和高度;改变字体大小
    页面渲染初始化
    元素位置改变
    样式表变动
    元素内容变化,尤其是输入控件
    CSS伪类激活
    DOM操作,添加或者删除可见的DOM元素
    offsetWidth, width, clientWidth, scrollTop/scrollHeight的计算, 会使浏览器将渐进回流队列Flush,立即执行回流。内容改变——比如文本改变或者图片大小改变而引起的计算值宽度和高度改变

  5. 以下哪些可以作为media queries的条件(BCD)
    A.设备型号
    B.设备像素比
    C.设备类型
    D.设备高度
    解析:作为media queries的条件:设备像素比、设备类型、设备高度。
    使用and关键字用于合并多个媒体属性或合并媒体属性与媒体类型。

  6. 下面哪些具体实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持:()
    A.java.util.ConcurrentHashMap
    B.java.util.Map
    C.java.util.TreeMap
    D.java.util.SortMap
    E.java.util.Hashtable
    F.java.util.HashMap
    解析:Hashtable的方法都是synchrnized修饰的线程安全,ConcurrentHashMap并发容器,JDK7采用分段锁,JDK8采用CAS算法,线程安全,建议使用,Connections工具类提供了一个方法synchrnizedMap可以把Map同步,本质就是给每一个方法加上synchrnized关键字进行同步

  7. 下列描述正确的是( AC)?
    A.类不可以多继承而接口可以多实现
    B.抽象类自身可以定义成员而接口不可以
    C.抽象类和接口都不能被实例化
    D.一个类可以有多个基类和多个基接口
    解析:1.java支持单继承,却可以实现多个接口。a对d错
    2.接口没有构造方法,所以不能实例化,抽象类有构造方法,但是不是用来实例化的,是用来初始化的。c对
    3.抽象类可以定义普通成员变量而接口不可以,但是抽象类和接口都可以定义静态成员变量,只是接口的静态成员变量要用static final public 来修饰。b错

  8. Which statement is true for the class java.util.ArrayList?(A)
    A.The elements in the collection are ordered.
    B.The collection is guaranteed to be immutable.
    C.The elements in the collection are guaranteed to be unique.
    D.The elements in the collection are accessed using a unique key.
    E.The elements in the collections are guaranteed to be synchronized.
    解析: A.集合中的元素是有序的 对
    B.集合被保证为不可变的 错
    C.集合中的元素被保证为唯一的 错 有序的 所以不唯一
    D.集合中的元素使用一个唯一的键来存取 错 没有键
    E.集合中的元素被保证为同步的 错 不是同步的

  9. 关于下面的程序Test.java说法正确的是( D )。

public class Test {
    static String x="1";
    static int y=1;
    public static void main(String args[]) {
        static int z=2;
        System.out.println(x+y+z);
    }
}

A.3
B.112
C.13
D.程序有编译错误
解析:局部变量,由于在方法中,方法中的变量都在栈中,随着方法的进栈出栈产生和销毁。所以不可以被static修饰。
一旦被static修饰变量就属于类了。

  1. 下面有关java内存模型的描述,说法错误的是?(D)
    A.JMM通过控制主内存与每个线程的本地内存之间的交互,来为java程序员提供内存可见性保证
    B.“synchronized” — 保证在块开始时都同步主内存的值到工作内存,而块结束时将变量同步回主内存
    C.“volatile” — 保证修饰后在对变量读写前都会与主内存更新。
    D.如果在一个线程构造了一个不可变对象之后(对象仅包含final字段),就可以保证了这个对象被其他线程正确的查看
    解析:对D: 需要保证没有哦发生this引用逃逸
    final关键字的可见性是指: 被final修饰的字段在构造前中一旦初始化完成,并且构造器没有把“this”的引用传递出去(this引用逃逸是一件很危险的事情,其他线程有可能通过这个引用访问到“初始化了一半”的对象),那在其他线程中就能看见final字段的值。

  2. 对Collection和Collections描述正确的是(BD)
    A.Collection是java.util下的类,它包含有各种有关集合操作的静态方法
    B.Collection是java.util下的接口,它是各种集合结构的父接口
    C.Collections是java.util下的接口,它是各种集合结构的父接口
    D.Collections是java.util下的类,它包含有各种有关集合操作的静态方法
    解析:java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
    java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架

  3. 在Java中,以下关于方法重载和方法重写描述正确的是?D
    A.方法重载和方法的重写实现的功能相同
    B.方法重载出现在父子关系中,方法重写是在同一类中
    C.方法重载的返回值类型必须一致,参数项必须不同
    D.方法重写的返回值类型必须相同或相容。
    解析:方法重载的返回值的类型可以不同,因为判断方法重载的方法主要是根据方法的参数不同来判定;方法重写的返回值类型需要相同,重写就是子类继承了父类的方法,并在此方法上重写属于自己的特征,既然是继承过来的,那么它的返回值类型就必须要相同

  4. 命令javac-d参数的用途是?(A)
    A. 指定编译后类层次的根目录
    B. 指定编译时需要依赖类的路径
    C. 指定编译时的编码
    D. 没有这一个参数
    解析:指定放置生成的类文件的位置

  5. 下面程序的运行结果(D)

Object obj=new Object();
        List aList=new ArrayList();
        List bList=new LinkedList();
        long t1=System.currentTimeMillis();
        for(int i=0;i<50000;i++){
            aList.add(0,obj);
        }
        long t2=System.currentTimeMillis()-t1;         
        t1=System.currentTimeMillis();
        for(int i=0;i<50000;i++){
            bList.add(0,obj);
        }
        long t3=System.currentTimeMillis()-t1; 

A.t2<t3< pre="">
B.t2=t3
C.不确定
D.t2>t3
解析:暂无

  1. 下列程序的运行结果 A
public void getCustomerInfo() {
        try {
            // do something that may cause an Exception
        } catch (java.io.FileNotFoundException ex) {
            System.out.print("FileNotFoundException!");
        } catch (java.io.IOException ex) {
            System.out.print("IOException!");
        } catch (java.lang.Exception ex) {
            System.out.print("Exception!");
        }
    }

A.IOException!
B.IOException!Exception!
C.FileNotFoundException!IOException!
D.FileNotFoundException!IOException!Exception!
解析://综上所述,这个是不能执行的,应为编译器会判断你所抛出的异常是什么,如果你写多个,可能会编译器会报错,错误为:
Unreachable catch block for FileNotFoundException. This exception is never thrown from the try statement body

  1. 以下关于内存泄漏说法正确的是(C)
    A.内存泄漏是操作系统内存管理出错导致的问题
    B.单线程程序不可能内存泄漏
    C.如果一个进程在运行过程中占用的内存无限制上升,那么该进程有内存泄漏
    D.只要进程在退出之前释放了所有分配的内存,那么就不会内存泄漏
    内存泄漏是仅仅出现在C/C++程序的问题,Java程序不会内存泄漏
    解析:A,内存泄露是程序设计的bug,不是操作系统的问题
    B,内存泄露跟线程数无关
    C,内存泄露是进程申请了内存却没有释放。导致占用内存无限上升
    D,进程退出之前释放申请的内存,不代表进程运行过程中没有内存泄露
    E,java是自动管理内存的,但是也会有内存泄露,比如加入HashMap的对象hash值改变了就无法从HashMap中remove,这就造成了内存泄露

  2. 一棵二叉树有7个度为1的结点,6个度为2的结点,则该二叉树共有个多少个结点(C)
    A.20
    B. 17
    C.25
    D.31
    解析:因为 总结点个数=总分枝数目+1 101+72+1=25
    树的度——也即是宽度,简单地说,就是结点的分支数.以组成该树各结点中最大的度作为该树的度;树中度为零的结点称为叶结点或终端结点.树中度不为零的结点称为分枝结点或非终端结点.除根结点外的分枝结点统称为内部结点.

41.以下对继承的描述错误的是(A)
A.Java中的继承允许一个子类继承多个父类
B.父类更具有通用性,子类更具体
C.Java中的继承存在着传递性
D.当实例化子类时会递归调用父类中的构造方法
解析:java不能多继承

  1. 关于以下方法调用描述正确的是:(BD)
private static final List<String> list = new ArrayList<>();
public static String test(String j){
    int i = 1, s = 1, f = 1, a = 1, b = 1,c = 1,d = 1,e = 1;
    list.add(new String("11111111111111111111111111111"));
    return test(s+i+f+a+b+c+d+e+"");
}

A.一定会发生” OutOfMemoryError: Java heap space”
B.一定会发生” StackOverflowError”
C.一定会发生” OutOfMemoryError: Java heap space与StackOverflowError”
D.当发生内存溢出错误时不需要用try…catch来捕获,需检查代码及jvm参数配置的合理性
解析:StackOverflowError 原因在于 : 无限调用递归函数, 函数是以栈帧的形式存在于虚拟机栈内存中, 一直创建栈帧, 导致栈溢出.
OutOfMemoryError :
Java堆用于存储对象实例, 只要不断地创建对象, 并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制来清除这些对象, 那么在对象数
量到达最大堆的容量限制后就会产生内存溢出异常. (摘抄自深入理解java虚拟机), 所以一直new String() 并不会造成堆内存溢出.
java异常可以分为checkedException和uncheckedException, 检查异常(不包括runtimeException及其子类的exception的子类)必须使用try catch或者throws处理, 而error属于非检查异常,非检查异常可以使用try catch捕获,但是没必要.

  1. 以下关于List删除方法使用错误的是(C)
    A.list循环外指定index删除:list.remove(i);
    B.list循环外指定元素删除:list.remove(obj);
    C.for(Object obj:list){list.remove(obj);}
    D.for(Iterator it= list.iterator();it.hasNext()😉{it.next();it.remove();}
    解析:foreach遍历集合中一般针对查询,没有删除remove()方法

  2. java反射机制的说法错误的是:(C)
    A.在运行时判断对象所属的类
    B.在运行时判断类所具有的成员变量和方法
    C.在运行时改变方法的实现
    D.在运行时调用一个对象的方法
    解析:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。

  3. 对于Java中异常的描述正确的是( D)
    用throws定义了方法可能抛出的异常,那么调用此方法时一定会抛出此异常。
    如果try块中没有抛出异常,finally块中的语句将不会被执行。
    抛出异常意味着程序发生运行时错误,需要调试修改
    Java中的可不检测(unchecked)异常可能来自RuntimeException类或其子类。
    解析:A错 在调用此方法的时候 也可以再次申明以将异常交由更高一级处理。
    B错 finally块中的语句一定会被执行。除非catch块中有System.exit(0)。
    C错 抛出异常不一定是运行时异常,也有可能是编译时异常。
    D对 运行时异常的特点是Java编译器不会检查它。

  4. Java语言中,如果"xyz"没有被创建过,String s =new String(“xyz”);创建了几个string object?B
    A.1
    B. 2
    C. 3
    D. 4
    解析:两个。第一个在堆中,第二个在字符串常量池中!如果在Java字符串常量池中已经存在,就只会创建一个

  5. Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?AC
    A.重写是父类与子类之间多态性的一种表现
    B.重写是一个类中多态性的一种表现
    C.重载是一个类中多态性的一种表现
    D.重载是父类与子类之间多态性的一种表现
    解析:重写是子类继承父类方法并对其进行修改,可选择调用父类方法或子类重写后的同名方法 重载是在一个类可以存在同名但参数列表不同的方法,可根据传入的参数调用相应的方法

  6. What might cause the current thread to stop or pause executing ABE
    A.An InterruptedException is thrown.
    B. The thread executes a wait() call.
    C. The thread constructs a new Thread.
    D.A thread of higher priority becomes ready.
    E.The thread executes a waitforID()call on a MediaTracker.
    解析:不是终止,而是抢占,优先级高的运行完之后,这个线程还要继续,只是暂时处于阻塞状态。

  7. Given the following code:AD

import EnclosingOne.InsideOne
class Enclosingone
{
    public class InsideOne {}
}
public class inertest
{
    public static void main(string[]args)
    {
        EnclosingOne eo = new EnclosingOne();
        //insert code here
    }
}

Which statement at line 11 constructs an instance of the inner class?
A.InsideOne ei=eo.new InsideOne();
B. eo.InsideOne ei=eo.new InsideOne();
C.InsideOne ei=EnclosingOne.new InsideOne();
D.EnclosingOne.InsideOne ei=eo.new InsideOne();
解析:内部类其实和类的属性没什么区别,只是在声明的时候必须是Outer.Inner a,就像int a 一样,至于静态内部类和非静态内部类new的时候有点区别,Outer.Inner a=new Outer().new Inner()(非静态,先有Outer对象才能有属性) Outer.Inner a=new Outer.Inner()要把Outer.Inner看成一部分,就像类变量一样

  1. 以下java程序代码,执行后的结果是(B)
public class Test {
    public static void main(String[] args) {   
        Object o = new Object() {  
             public boolean equals(Object obj) {  
                 return true; 
         }
     };   
     System.out.println(o.equals("Fred"));
     }
}

A.Fred
B.true
C.编译错误
D.运行时抛出异常
解析:B: 重写了object 的equals 的方法,使他怎么输出都是tue

  1. String str1 = “abc”,“abc”分配在内存哪个区域?C
    A.堆
    B.栈
    C.字符串常量区
    D.寄存器
    解析:用new创建的对象在堆区
    函数中的临时变量在栈去
    java中的字符串在字符串常量区

  2. HashMap和HashTable的描述,错误的是?D
    A.他们都实现了Map接口。
    B.HashMap非线程安全,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。
    C.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
    D.通过contains方法可以判断一个对象是否存在于HashMap或者Hashtable中。
    解析:HashMap无contains方法

  3. 下面属于java包装类的是?BCD
    A.String
    B.Long
    C.Character
    D.Short
    解析:Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上我们就能够看出他们分别对应于 boolean、char、int、long、float和double。而String和Date本身就是类

  4. jdk1.8中,下面有关java 抽象类和接口的区别,说法错误的是?BD
    A.抽象类可以有构造方法,接口中不能有构造方法
    B.抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法
    C.一个类可以实现多个接口,但只能继承一个抽象类
    D.接口中可以有普通成员变量,抽象类中没有普通成员变量
    解析:接口中可以有成员变量,只是默认为public final

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值