分享10道常考Java面试题及答案
大家好,今天给大家分享10道常考的Java面试题及答案,涉及到Java中的10个方面。每个领域一道题。希望你能有收获。
<面向对象>什么是面向对象?什么是面向过程?面型对象的三大基本特性和五大基本原则是什么?
知识点:Java的一种面向对象的语言。
思考一下什么是面向对象?什么是面向过程?面向对象的三大基本特征和五大基本原则是什么?
什么是面向过程?
把问题分解成一一个一个步骤,每个步骤用函数实现,依次调用即可。就是说,在进行面向过程编程的时候,不需要考虑那么多,上来先定义一个函数,然后使用各种诸如if-else、 for-each等方式进行代码执行。最典型的用法就是实现一个简单的算法,比如实现冒泡排序。
什么是面向对象?
将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。就是说,在进行面向对象进行编程的时候,要把属性,行为等封装成对象,然后基于这些对象及对象的能力进行业务逻辑的实现。比如想要造一辆车,上来要先把车的各种属性定义出来,然后抽象成一个Car类。
面向对象的三大基本特征和五大基本原则?
三大基本特征:封装,继承,多态。
五大基本原则:单一职责原则(Single_Responsibility Principle),开放封闭原则,Liskov替换原则,依赖倒置原则和接口隔离原则。这五大基本原则。
这些东西虽说都是概念性的,但是很多程序员根本不知道,更别说如何更好的面向对象编程了,我看过很多人写的代码,从头到尾写一个函数,各种if_else,完全不考虑复用,扩展等。这种代码很不利于阅读和维护,希望球友们不仅要记住还要通汇贯通,切实到工作去。
<String>String类能不能被继承,为什么?这种设计有什么好处?
string类能不能被继承?为什么?这种设计有什么好处?
安全性
不可变对象天生就是线程安全的
因为不可变对象不能被改变,所以他们可以自由的在多个线程之间共存,不需要任何同步处理。
总之,string被设计成不可变的主要目的是为了安全和高效。所以,使string是一个不可变类是一个很好的设计。