多年开发经验总结的Java面试题——(一)

王林
发布: 2020-07-21 17:28:15
转载
1923 人浏览过

多年开发经验总结的Java面试题——(一)

一、基本数据类型和封装类有什么区别

(更多面试题推荐:java面试题

原始类型是类,引用类型是对象。

原始类型大小比较用"==",引用类型大小比较用"equals"。

引用类型可以被序列化,原始类型不行。

在集合类中只能使用引用类型,不能使用原始类型。

基本数据类型不用new,封装类需要new。

基本数据参数传递是以值传递,封装类型是以地址传递的。

二、String、StringBuffer、StringBuilder三者之间的区别

String是字符串常量,StringBuffer、StringBuilder是字符串变量。

String创建的字符内容不可变(String底层char数组是final的),StringBuffer、StringBuilder的字符内容是可加长的。

StringBuffer是线程安全的,StringBuilder线程不安全的,但是速度快(因为它不会为线程安全消耗性能)。

三、String为什么不可变?

虽然String、StringBuffer和StringBuilder都是final类,它们生成的对象都是不可变的,而且它们内部也都是靠char数组实现的。

但是不同之处在于,String类中定义的char数组是final的,而StringBuffer和StringBuilder都是继承自AbstractStringBuilder类,它们的内部实现都是靠这个父类完成的,而这个父类中定义的char数组只是一个普通是私有变量,可以用append追加。

(相关教程推荐:java入门教程

因为AbstractStringBuilder实现了Appendable接口。

四、运行时异常和非运行时异常的区别

运行时异常是运行时报错:比如ClassCastException(类转换异常)、IndexOutOfBoundsException(数组越界)、NullPointerException(空指针)、ArrayStoreException(数据存储异常,操作数组时类型不一致)、IO操作的BufferOverflowException异常。

(视频教程推荐:java视频教程

非运行时异常是还未运行可见的错误,可以用try、catch捕获异常。

五、简述一下面向对象的特征,并举例说明你对面向对象的理解

面向对象的特征归结为封装继承多态,把现实世界的事物的属性、行为特征抽象出来放到一个容器里(类),比如人类,人的走、听、吃、说等动作可以归结为类里的方法,但又是人类的共同点,人有身高、体重归结为类里的属性。

封装:就是设计者把不愿意透露给使用者的那部分代码就是封装过的,通过修饰词private(权限最小)、public(权限最大)、protected、default(属性前默认为该类型),这些才能起到限制类对象权限的作用。

继承:子类继承父类的过程,继承者可以拥有父类全部方法属性。好处是提高代码复用性,子类只需要写特有的功能或者字段可以把公共的代码抽出到父类里面。

多态:通过父类统一子类方法属性,然后通过调用,可以任意使用子类方法,优化代码量,原理是子类对父类方法进行重写。

以上是多年开发经验总结的Java面试题——(一)的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:csdn.net
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!