1. 面向对象的特征
三大特征:封装、继承、多态。
封装:把客观事物封装成抽象的类,这个类可以把自己的数据和方法暴露给可信的类和对象操作,同时对不信任的类或对象进行信息隐藏。
继承:可以让一个类获得另一个类的属性和方法,在无需重新编写原来类的情况下,获得原来类的所有功能,并进行扩展。这是一个从一般到特殊的过程,被继承的类称之为父类,超类,继承后的类称之为子类,派生类。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。实现方式分为实现继承和接口继承。
多态:(开始以为是重载,其实重载与多态完全不一样)一个类实例的相同方法在不同的情形下,具有不同的表现形式。多态是通过继承来实现的,多个子类重写了同一个父类的方法,用这些子类来实例化父类,那么这些子类实例虽然具有相同的形式,但是调用这些实例的相同方法时,执行的操作却不一样。 多态提供了对同一对象进行差异化的处理方式,子类通过多态重写父类的方法来体现子类的差异性。
2. 面向对象的5大基本原则
(1) 单一职责原则SRP(Single Responsibility Principle)
一个类的功能要单一,不要包罗万象。就比如一个人,分配的工作不要太多,否则一天到晚虽然忙忙碌碌,但效率不高。
(2) 开闭原则OCP(Open-Close Principle)
一个模块或一个类要开放扩展,关闭修改。要求在设计之初,要将公共部分抽象出来。
(3) 替换原则LSP(the Liskov Substitution Principle)
子类应该可以替代父类,并可以出现在父类任何出现的地方。
(4) 依赖倒置原则DIP(Dependency Inversion Principle)
具体依赖抽象,上层依赖下层。
(5) 接口分离原则ISP(Interface Segregation Principle)
模块间要通过抽象接口隔离开来,而不是通过具体的类强耦合。
3. 重载和重写的区别
重载:是指一个类中允许存在方法名相同,但参数类型、个数或顺序不相同的方法。
重写:是指子类对父类方法的覆盖重写,是基于继承的,表达了JAVA的多态性。
两者的区别还在于编译器何时去寻找所要调用的具体方法。对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法,这称为“早绑定”或“静态绑定”;而对于多态,只有等到方法调用的那一刻,编译器才会确定所要调用的具体方法,这称为“晚绑定”或“动态绑定”。
4. 接口与抽象类的区别
·抽象类和接口有什么区别
·说说反射的用途及实现
·说说自定义注解的场景及实现
· HTTP请求的 GET与 POST方式的区别
· session分布式处理
· JDBC流程
· MVC设计思想
equals与 ==的区别
equals 是值比较,==是对象的引用比较,比较是地址。