Java 背景基础
Java SE, Java EE 和 Java ME的区别
- Java EE 相比与 Java SE 多了许多API。我们熟悉的Spring等框架都是Java EE开源生态系统的一部分。
- Java ME 是 Java SE的瘦身版,使用的人极少。
JDK 与 JRE的区别
- JDK:Java Development Kit(Compiler, debugger + JRE)
- JRE:Java Runtime Environment (JVM + Runtime Library )
- JVM: Java Virtual Machine
- JRE就是运行Java字节码的虚拟机。但是,如果只有Java源码,要编译成Java字节码,就需要JDK,因为JDK除了包含JRE,还提供了编译器、调试器等开发工具。
Java 面向对象
什么是多态
- 针对某个类型的方法,只有在运行的时候才能知道具体使用的是哪种方法。例如,当子类中的方法A override 父类种的方法A时,只有在运行的时候才能知道我们用的是父类还是子类的方法A。
抽象方法 和 抽象类 和 接口
- 为什么要使用抽象方法:如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法,目的是让子类去覆写它,那么,可以把父类的方法声明为抽象方法。
- 含有抽象方法的函数叫抽象类。抽象类不可以被实例化,但是可以当作一种变量类型。例如,Person() 是抽象类。Person LiMing = new Man(); 是正确的。
- 因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译会报错。因此,抽象方法实际上相当于定义了“规范”。
- 接口和抽象类的本质区别:接口只有定义的function,没有变量声明。