关注“Java 后端技术全栈”**
回复“面试”获取全套面试材料
面向对象是一种思维,世间万物都能够看做一个对象,这里只探讨面向对象编程。
(OOP-->Object Oriented Programming)
Java 是一个反对并发、基于类和面向对象的计算机编程语言。面向对象软件开发具备以下长处:
- 代码开发模块化,更易保护和批改。
- 代码复用性强。
- 加强代码的可靠性和灵活性。
- 减少代码的可读性。
请说说面向对象的特色?
四点:封装 、 继承 、 多态 、 形象。
1)封装
封装,给对象提供了暗藏外部个性和行为的能力。对象提供一些能被其余对象拜访的办法来扭转它外部的数据。
在 Java 当中,有 4 种修饰符:default
、public
、private
和 protected
。
留神:java 的访问控制是停留在编译层的,也就是它不会在.class 文件中留下任何的痕迹,只在编译的时候进行访问控制的查看。其实,通过反射的伎俩,是能够拜访任何包下任何类中的成员,例如,拜访类的公有成员也是可能的。
区别:
public:能够被所有其余类所拜访
private:只能被本人拜访和批改
protected:本身、子类及同一个包中类能够拜访
default:同一包中的类能够拜访,申明时没有加修饰符,认为是 friendly。
每一种修饰符给其余的位于同一个包或者不同包上面对象赋予了不同的拜访权限。
上面列出了应用封装的一些益处:
- 通过暗藏对象的属性来爱护对象外部的状态。
- 进步了代码的可用性和可维护性,因为对象的行为能够被独自的扭转或者是扩大。
- 禁止对象之间的不良交互进步模块化。
2)继承
继承,给对象提供了从基类获取字段和办法的能力。继承提供了代码的重用行,也能够在不批改类的状况下给现存的类增加新个性。
3)多态
多态,是编程语言给不同的底层数据类型做雷同的接口展现的一种能力。一个多态类型上的操作,能够利用到其余类型的值下面。
4)形象
形象,是把想法从具体的实例中分离出来的步骤,因而,要依据他们的性能而不是实现细节来创立类。
Java 反对创立只暴漏接口而不蕴含办法实现的形象的类。这种形象技术的次要目标是把类的行为和实现细节分来到。
面向对象和面向过程的区别?
- 面向过程
- 长处:性能比面向对象高,因为类调用时须要实例化,开销比拟大,比拟耗费资源。比方,单片机、嵌入式开发、Linux/Unix 等个别采纳面向过程开发,性能是最重要的因素。
- 毛病:没有面向对象易保护、易复用、易扩大。
- 面向对象
- 长处:易保护、易复用、易扩大,因为面向对象有封装、继承、多态性的个性,能够设计出低耦合的零碎,使零碎更加灵便、更加易于保护。
- 毛病:性能比面向过程低。
重载和重写的区别?
1)重写 override
- 办法名、参数、返回值雷同。
- 子类办法不能放大父类办法的拜访权限。
- 子类办法不能抛出比父类办法更多的异样(但子类办法能够不抛出异样)。
- 存在于父类和子类之间。
- 办法被定义为
final
不能被重写。
2)重载 overload
- 参数类型、个数、程序至多有一个不雷同。
- 不能重载只有返回值不同的办法名。
- 存在于父类和子类、同类中。
重载与重写的比照
在 Java 中,什么是构造方法?什么是构造方法重载?什么是拷贝构造方法?
1)构造方法
当新对象被创立的时候,构造方法会被调用。每一个类都有构造方法。在程序员没有给类提供构造方法的状况下,Java 编译器会为这个类创立一个默认的无参构造方法。
2)构造方法重载
Java 中构造方法重载和办法重载很类似。能够为一个类创立多个构造方法。每一个构造方法必须有它本人惟一的参数列表。
3)拷贝构造方法
Java 不反对像 C++ 中那样的拷贝构造方法,这个不同点是因为如果你不本人写构造方法的状况下,Java 不会创立默认的拷贝构造方法。
拷贝构造函数 是一种非凡的构造函数,它在创建对象时,是应用同一类中之前创立的对象来初始化新创建的对象。拷贝构造函数通常用于:
- 通过应用另一个同类型的对象来初始化新创建的对象。
- 复制对象把它作为参数传递给函数。
- 复制对象,并从函数返回这个对象。
如果在类中没有定义拷贝构造函数,编译器会自行定义一个。如果类带有指针变量,并有动态内存调配,则它必须有一个拷贝构造函数。
举荐浏览
面试大厂回来后,有一些话想对 Java 后端开发说一说
【原创】Spring Boot 终极篇《上》
【原创】Spring Boot 终极篇《下》