JAVA基础理解(五)

1.列出一些常见的运行时异常。

ArithmeticException (算数异常)

ClassCastException (类转换异常)

IllegalArgumentException (非法参数异常)

IndexOutOfBoundsException (下标越界异常)

NullPointerException(空指针异常)

SecurityException (安全异常)

2.什么是反射?

反射就是动态加载对象,并对对象进行剖析。在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法,这种动态获取信息以及动态调用对象方法的功能称为Java的反射机制。

3.反射的作用

1)在运行时判断一个对象的所属的类

2)在运行时构造任意一个类的对象

3)在运行时判断任意一个类所具有的成员变量和方法

4)在运行时调用任意一个对象的方法。

4.获取class的三种方式

对象调用getClass() 方法来获取;类名.class的方式得到‘;通过Class对象的forName() 静态方法来获取

5.break 和continue的却别?

break和continue 都是用来控制循环的语句。

break用于完全结束一个循环,跳出循环体执行循环后面的语句。continue用于跳过本次循环,继续下次循环。

6.运行时异常与一般异常有何异同

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常

7.List、Map、Set三个接口存取元素时,各有什么特点?

List以特定索引来存取元素,可以有重复元素。Set不能存放重复元素(用对象的equals方法来区分元素是否重复)。Map保存键值对(Key-value pair)映射,映射关系可以是一对一或多对一。

8.Collection 和 Collections 的区别

Collection 是集合类的上级接口,继承与他的接口主要有Set 和 List.

Collections 是针对集合类的一个帮助类,它提供一系列静态方法实现对各种集合的搜索、排序、线程安全化的操作。

9.Error和Exception 有什么区别

error 表示恢复不是不可能但是很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

10.EJB包括(SessionBean,EntityBean),写出他们的生命周期, 以及如何管理实务。

SessionBean:Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。当客户机第一次调用一个Stateful Session Bean时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用StatefulSession Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例。EntityBean:Entity Beans能存货相对较长的事件,并且状态是持续的。只要数据库中的数据存在,Entity beans 就一直存活。而不是按照应用程序或者服务进程来说的。即使EJB容器崩溃了,Entity Beans生命周期能够被容器或者Beans自己管理。

EJB通过以下技术管理实务:对象管理组织(OMG)的对象实务服务(OTS),Sun Microsystems 的Transaction Service(JTS)、Java Transaction API (JTA)、开发组(X/Open)的XA接口。

11.Comparable 和 Comparator 接口的区别

Comparable 接口只包含一个compareTo() 方法。这个方法可以给两个对象排序。具体来说,它返回负数,0,正数来表明输入对象小于,等于,大于已经存在的对象。

Comparator接口包含compare()和equals()两个方法

12.switch能否作用在byte、long、string上?

switch可作用在char、byte、short、int

switch可作用于char、byte、short、int的包装类上

switch不可作用于long、double、float、boolean,包括他们的包装类

switch中可以是字符串类型,String(Java1.7以后才可以作用在String上)

switch可以是枚举类型(JDK1.5之后)

13.jdk中哪些类是不能继承的?

不能继承的是类是哪些用final关键字修饰的类,一般比较基本的类型或防止扩展类无意间破坏了原来方法的实现的类型都应该是final的,在jdk中System,String,StringBuffer等都是基本类型

14.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?他们有何区别?

Set里的元素是不能重复的,元素重复与否是使用equals()方法进行判断的equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

15.JDK和JRE的区别是什么?

Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件。Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。

16.是否可以再static环境中访问非static变量?

static变量在java中是属于类的,他在所有的实例中值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化,如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

17.Java支持多继承嘛?

不支持,Java不支持多继承。每个类都只能继承一个类,但是可以实现多个接口。内部类在一定程度上也解决了多继承问题。

18.什么事迭代器(iterator)

Iterator 接口提供了很多对集合元素进行迭代的方法。每一个集合类都包含了可以返回迭代器实例的迭代方法。迭代器可以在迭代的过程中删除底层集合的元素。

克隆(cloning)或者是序列化(seriablization)的语义和含义是根据的实现相关的。因此,应该由集合类的具体实现来决定如何被克隆或者是序列化。

19.Iterator 和 ListIterator的区别是什么?

下面列出了他们的区别:

Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。

Iterator对集合只能是前向遍历,ListIterator既可以镶嵌也可以向后遍历。

ListIterator实现了Iterator接口,幷包含其他的功能。比如:增加元素,替换元素。获取前一个和后一个元素的索引,等等。

20、Enumeration接口和Iterator接口的区别有哪些?

Enumeration速度是Iterator的2倍,同时占用更少的内存。但是,Iterator远远比Enumeration安全,因为其他线程不能够修改正在被iterator遍历的集合里面的对象。同时,Iterator允许调用者删除底层集合里面,这对Enumeration来说是不可能的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章