码迷,mamicode.com
首页 > 编程语言 > 详细

每天五个java相关面试题(10)--java基础详解篇2

时间:2015-08-26 22:35:19      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:面试题   java   

好勒好勒。一起加油

一、HashMap和Hashtable的区别。

答:
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

上面回答中涉及的知识点:

1、Dictionary类,为抽象类,用来储存键值对,作用与Map相似。(这个类已过时)。
2、线程安全。这个问题又涉及到了线程安全,所有关于线程安全可以看我前一篇博文中提到的线程安全知识点。

二、final, finally, finalize的区别。

答:
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

上面回答中涉及的知识点:

1、每个类都有finalize()方法嘛?为什么?
答:都有这个方法。由于finalize()属于Object类,因此所有类都有这个方法,Object的任意子类都可以重写 (override)该方法,在其中释放系统资源或者做其它的清理工作,如关闭输入输出流。

三、sleep() 和 wait() 有什么区别?

答:
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

上面回答中涉及的知识点:

关于线程大家可点击我以前的这篇文章熟悉一下关于线程常考的面试题:《每天五个java面试题——线程篇》

四、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

答:
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被”屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

五、error和exception有什么区别?

答:
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

有什么问题的地方或是你觉得回答中可能是个“坑”、会被面试官抓住追问的地方欢迎大家一起交流~一起进步~!

版权声明:本文为博主原创文章,未经博主允许不得转载。请多多指教~

每天五个java相关面试题(10)--java基础详解篇2

标签:面试题   java   

原文地址:http://blog.csdn.net/u012036171/article/details/48009529

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!