A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑妞~ 金牌黑马   /  2014-8-27 10:21  /  3899 人查看  /  33 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 立姐 于 2014-8-27 10:22 编辑

身为一名Java程序员,在面试的时候常常被问到的,下面我总结一些常常别问到的问题。


1.HashMap和Hashtable之间的区别


经常问到。这两个都是Map接口的类,实现了将唯一键映射到特定的值上。

  HashMap类没有排序,可以一个null键和多个null值

  Hashtable,不可以有null键和null值。比Hash慢,因为他是同步的。


2.abstract class和interface有什么区别


经常问。声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。


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


很基础的一道题。

  Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。

  equals()和==方法决定引用值是否指向同一对象

  equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。


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


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


5.谈谈final, finally, finalize的区别


最常问到。

final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

  Finally在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

  finalize方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。


6.常见到的runtime exception


这是考验你在编程中的经验了。

  ClassCastException 类转换异常,在进行类型转换的时候。

  NoSuchElementException 找不到方法

  NullPointerException 最常见,空值针 避免Java程序中NullPointerException的技巧和最佳实践

ProfileDataException, ProviderException, RasterFORMatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, 等等

黑马微信扫一扫,生活更美好



点评

收藏一下  发表于 2015-2-10 17:54
写的很全面  发表于 2014-8-27 10:32

33 个回复

正序浏览
收藏,慢慢研究。
回复 使用道具 举报
很实用的知识
回复 使用道具 举报
学习了,谢谢分享。。。。。
回复 使用道具 举报
收藏了
回复 使用道具 举报
谢谢分享,经常看看!
回复 使用道具 举报
学习了
回复 使用道具 举报
好东西,感谢楼主。
回复 使用道具 举报
收藏一下。以后有用
回复 使用道具 举报
年后进Java 班学习...........
回复 使用道具 举报
先复制下来,嘿嘿。
回复 使用道具 举报
飞翔的蜗牛 来自手机 中级黑马 2015-1-20 23:31:52
22#
看看。。。。
回复 使用道具 举报
很有用,至少面试的时候心态也是一种决定因素!
回复 使用道具 举报
很有用处啊
回复 使用道具 举报
先收藏了,等学完再回头研究
回复 使用道具 举报
都是很常见的问题,先收藏了,感谢!
回复 使用道具 举报
扩充知识!顶一个
回复 使用道具 举报
收藏了,谢谢分享
回复 使用道具 举报
cxj 中级黑马 2014-12-20 16:28:34
15#
java,正在从Helloworld开始学起
回复 使用道具 举报
那要是接口中有好多的类咋办啊,都要重写吗?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马