zoukankan      html  css  js  c++  java
  • JavaSE--简答题

     

    1.finalfinallyfinalize的区别。(3分)

    Ø final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

    Ø finally是异常处理语句结构的一部分,表示总是执行。

    Ø finalizeObject类的一个方法,在垃圾收集器执行的时候会调用回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

    评分要求:共计3项,每项1分。

    2.ErrorException的区别, Checked异常和Runtime异常的区别。(6分)

    ErrorException的区别

    Ø Error类,表示仅靠程序本身无法恢复的严重错误,比如说内存溢出、动态链接异常、虚拟机错误。应用程序不应该抛出这种类型的对象。假如出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以在进行程序设计时,应该更关注Exception类。

    Ø Exception类,由Java应用程序抛出和处理的非严重错误,比如所需文件没有找到、零作除数,数组下标越界等。它的各种不同子类分别对应不同类型异常。可分为两类:Checked异常和Runtime异常。

    Checked异常和Runtime异常的区别

    Ø 运行时异常:包括RuntimeaException及其所有子类。不要求程序必须对它们作出处理,比如InputMismatchExceptionArithmeticExceptionNullPointerException等。即使没有使用try-catchthrows进行处理,仍旧可以进行编译和运行。如果运行时发生异常,会输出异常的堆栈信息并中止程序执行。

    Ø Checked异常(非运行时异常):除了运行时异常外的其他异常类都是Checked异常。程序必须捕获或者声明抛出这种异常,否则出现编译错误,无法通过编译。处理方式包括两种:通过try-catch捕获异常,通过throws声明抛出异常从而交给上一级调用方法处理。

    评分要求:ErrorException的区别,每项1.5分共3

    Checked异常和Runtime异常的区别,每项1.5分共3分。

     

    3.StringStringBufferStringBuilder区别与联系。(5分)

    Ø String类是不可变类,即一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象销毁。

    Ø StringBuffer类则代表一个字符序列可变的字符串,可以通过appendinsertreversesetChartAtsetLength等方法改变其内容。一旦生成了最终的字符串,调用toString方法将其转变为String

    Ø JDK1.5新增了一个StringBuilder类,与StringBuffer相似,构造方法和方法基本相同。不同是StringBuffer是线程安全的,而StringBuilder是线程不安全的,所以性能略高。通常情况下,创建一个内容可变的字符串,应该优先考虑使用StringBuilder

    评分要求:前两项每项1.5分,第三项2分,本题共5分。

    4. HashSet采用了哈希表作为存储结构,请说明哈希表的特点和实现原理。

    提示:结合Object类的hashCode()equals()说明其原理6分)

    Ø 哈希表的查询速度特别快,时间复杂度为O

    Ø HashMapHashtableHashSet这些集合采用的是哈希表结构,需要用到hashCode哈希码,hashCode是一个整数值。

    Ø 系统类已经覆盖了hashCode方法 自定义类如果要放入hash类集合,必须重写hashcode。如果不重写,调用的是Objecthashcode,而ObjecthashCode实际上是地址。

    Ø 向哈希表中添加数据的原理:当向集合Set中增加对象时,首先集合计算要增加对象的hashCode码,根据该值来得到一个位置用来存放当前对象,如在该位置没有一个对象存在的话,那么集合Set认为该对象在集合中不存在,直接增加进去。如果在该位置有一个对象存在的话,接着将准备增加到集合中的对象与该位置上的对象进行equals方法比较,如果该equals方法返回false,那么集合认为集合中不存在该对象,在进行一次散列,将该对象放到散列后计算出的新地址里。如果equals方法返回true,那么集合认为集合中已经存在该对象了,不会再将该对象增加到集合中了。

    Ø 在哈希表中判断两个元素是否重复要使用到hashCode()equals()hashCode决定数据在表中的存储位置,而equals判断是否存在相同数据。

    Ø Y=K(X) K是函数,X是哈希码,Y是地址

    评分要求:前三项每项1分,共3分,原理2分,后两项,每项各0.5分,

    本题共6分。

     

    5. 实现Java反射技术的主要类有哪些,其作用分别是什么?(5分)

    JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中

    Ø Class类:代表一个类

    Ø Field 类:代表类的成员变量(属性)

    Ø Method类:代表类的成员方法

    Ø Constructor 类:代表类的构造方法

    Ø Array类:提供了动态创建数组,以及访问数组的元素的静态方法

    评分要求:每项1分,类与作用各占0.5分,本题共5分。

     

     
  • 相关阅读:
    注册博客园
    算法与数据结构-树-简单-二叉搜索树中的众数
    算法与数据结构-最小化舍入误差以满足目标
    算法与数据结构-设计有限阻塞队列
    分布式学习笔记2
    JS学习笔记1
    生活-上海租房经验
    分布式技术-学习笔记1
    HashMap-线程不安全的原因
    MySQL-复制
  • 原文地址:https://www.cnblogs.com/9797ch/p/11817045.html
Copyright © 2011-2022 走看看