Java面试题库之面向对象(五)

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

在比较时先调用hashCode方法,如果不相同,证明不相等。

如果相同,再调用equals方法,如果equals方法相同,证明相等,不相同,证明不相等。

==:主要用在基本数据类型及引用

Equals:主要是对象或对象引用的比较。

集合中是否包含某一个元素用contains来判断。

46.List, Set, Map是否继承自Collection接口?

List,set继承于Collection

Map没有继承于Collection,其相对是独立的。

属于Collection类型的对象,可以通过构造函数将一个集合构造成另外一个集合。

47.面向对象的特征有哪些方面?

1.抽象:找共性,将共有的属性、方法放到父类中

2.继承:子类继承于父类,具有父类的所有属性与方法,可以重用,也可以覆盖。

3.封装:一个类包括多个属性及方法。

4.多态

[v_notice]【Java面试题】8 面向对象的特征有哪些方面?(https://www.cnblogs.com/guweiwei/p/6599289.html)[/v_notice]

48.String是最基本的数据类型吗?

基本数据类型包括byte、short、int、long、float、double、boolean和char。

而String是类代表字符串,属于引用类型,所谓引用类型包括:类,接口,数组。

49.int 和 Integer 有什么区别?

Int是基本数据类型,不是对象,占一个内存空间,没有方法。与其同类的有long,char,doble

Integer是封装类,具有方法及属性。与其同类的有Long,Double.Float

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

运行时异常:java JVM抛出的异常,代码中不用处理。

一般异常:用户抛出的异常,如果用throws 声明了,调用这个方法的代码必须对其处理。

51.&和&&的区别?

&:与: 左边若为false右边还执行。
&&:短路与,左边若为false右边不执行

52.final, finally, finalize的区别?

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

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

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

[v_notice]Java中final、finally、finalize的区别与用法(https://www.cnblogs.com/smart-hwt/p/8257330.html)[/v_notice]

53.heap和stack有什么区别?

栈是一种线形集合,其添加和删除元素的操作应在同一段完成。

栈按照后进先出的方式进行处理。

堆是栈的一个组成元素

[v_notice]堆(heap)和栈(stack)有什么区别?(https://www.cnblogs.com/pomp/archive/2007/10/19/930145.html)
面试题思考:Stack和Heap的区别(https://blog.csdn.net/u014306011/article/details/51044091)[/v_notice]

54.Static Nested Class 和 Inner Class的不同?

Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。

而通常的内部类需要在外部类实例化后才能实例化。

[v_notice]Static Nested Class 和 Inner Class的不同?(https://www.cnblogs.com/azhqiang/p/4609737.html)[/v_notice]

55.什么时候用assert?

assertion (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。

在实现中,assertion就是在程序中的一条语句,它对一个 boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。

一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。

为了提高性能,在软件发布后,assertion检查通常是关闭的。

[v_notice]什么时候用异常,什么时候用断言?(https://www.zhihu.com/question/24461924)
什么时候该用ASSERT?(https://www.cnblogs.com/lua5/archive/2010/12/05/1896756.html)[/v_notice]

本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Java面试题库之面向对象(五)

Leave a Reply

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多