东华笔试题2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、JA V A中的异常处理机制的简单原理和应用
简单原理:每当产生异常以后,如果没有程序进行相应的处理,则程序出现中断的现象,那么,此时实际上一旦产生一个异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句进行捕获的话,则可以进行异常处理,如果没有的话,则交给JVM进行处理,当try进行处理,当try语句捕获到了异常以后,会与catch中的异常类进行匹配,如果匹配成功,则使用此catch语句进行处理。

应用:简单的引用,就是在所有有throws关键字的地方加入try…catch
如果按照一个标准做法的话:try ,catch,finally,throw,throws关键字应该一起使用。

2、垃圾回收的优化和原理,并考虑2种回收机制。

将无用的对象空间进行释放,两种回收:自动回收,手工调用System.gc()方法,实际上调用System.gc()就相当于调用了Runtime.Runtime().gc()方法。

3、Error和Exception有什么区别?
Error表示是有JVM进行处理的,是JVM出错
Exception是可以由程序进行处理的,使用try…catch进行处理
4、谈谈final,finally,finalize的区别。

? Final是定义是常量、方法、类的、声明的方法不能被复写、声明的类不能被继承
? Finally:是异常的统一出口
? Finalize:是垃圾回收前的收尾工作,是Object类中定义的
5、Anonymous Inner Class(匿名内部类)是否可以extend(继承)其他类,是否可以implements(实现) interface(接口)?
允许继承或实现,因为匿名内部类就是在抽象类和接口的基础之上发展起来的
6、Static Nested Class和Inner Class的不同。

|-使用Static声明的内部类就是外部类,可以通过外部类,内部类直接访问
|-普通的内部类是不能够直接被外部所访问的,需要通过外部类实例再找到内部类实例
7、HashMap和Hashtable的区别。

? HashMap
|-JDK1.2以后推出,是新的类
|-采用异常处理方式,性能较高,但是属于非线程安全
|-允许设置null
? Hashtable
|-JDK1.0时候推出,是旧类
|-采用同步处理方式,性能较低,但是属于线程安全
|-不允许设置null,否则将出现NullPointerException
8、什么时候用assert?
? JDK1.4之后添加的新关键字,----assert,表示断言,既程序执行到某个地方之后值肯定会设计好的。

? 一般开发中很少使用assert
? 要想使用断言,则必须使用-ea参数
9、GC是什么?为什么要有GC?
? GC:垃圾收集
? 使用GC可以进行垃圾空间的释放
10、String s=new String(“xyz”);创建了几个String Object?
产生了两个实例化的对象,一个是匿名对象“xyz”,另外一个是通过关键字new实例化的。

11、Sleep()和wait()有什么区别?
? Sleep()是Thread类中定义的方法,表示线程的休眠,会自动唤醒
? Wait()是Object中定义的方法,需要手工调用notify()或notifyALL()方法
12、JA V A中有没有goto?
? Goto()属于保留的关键字,JA V A中存在goto,只是无法使用
13、数组中有没有length()这个方法?String有没有length()?
数组中存在length的属性,String中存在length()方法
14、Overload和Override的区别,Overload的方法是否可以改变返回值的类型?
? 重载:Overload
在一个定义的若干方法
所有的方法名称相同,但是参数的类型或个数不同
? 重写:Override
在继承的关系中
子类定义了与父类同名的方法,参数类型或个数最好完全一样,注意访问权限不能更加严格? 重载的时候不能依靠返回类型区分的,而是靠参数
15、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?
依靠hashcode()和equals()两个方法完成,==属于地址值比较,而equals属于内容比较,使用的是equals方法
16、列举出一些最常见的runtime exception。

NumberFormatException、ArrayOutInderofboundException、NullPointerException、classCastException
17、Abstract class和interface有什么区别?
? 抽象类
由抽象方法和常量、变量、全局常量、构造方法、普通方法组成
使用abstract声明
子类通过extends继承抽象类,子类如果不是抽象类,则必须覆写抽象类中的全部抽象方法存在单继承局限,一个子类只能继承一个抽象类
抽象类可以实现若干个接口
? 接口
全部由抽象方法和全局常量组成
使用interface声明
子类通过implements实现接口,子类如果不是抽象类,则必须覆写抽象类中的全部抽象方法
不存在单继承局限,一个子类可以同时实现多个接口
接口不能继承一个抽象类,但是允许继承多个接口
18、启动一个线程是用run()还是Start()?
使用Start()方法,因为要通知JVM进行CPU资源的分配
19、Try{}里面哟一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return之前执行,只要是finally{}的代码永远会被执行。

相关文档
最新文档