面向过程java
面向对象面试
封装:
一般认为封装是把数据和操做数据的方法绑定起来,对数据的访问只能经过已定义的接口。面向对象 的本质就是将现实世界描绘成一系列彻底自治、封闭的对象。咱们在类中编写的方法就是对实现细节的一种封装;我 们编写一个类就是对数据和数据操做的封装。能够说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程 接口。编程
继承
继承是从已有类获得继承信息建立新类的过程。提供继承信息的类被称为父类(超类、基类);获得继 承信息的类被称为子类(派生类)。继承让变化中的软件系统有了必定的延续性,同时继承也是封装程序中可变因素的 重要手段。服务器
多态
多态是指容许不一样子类型的对象对同一消息做出不一样的响应。简单的说就是用一样的对象引用调用一样的方法可是作了不一样的事情。多态性分为编译时的多态性和运行时的多态性。若是将对象的方法视为对象向外界提供的服务,那么运行时的多态性能够解释为:当 A 系统访问 B 系统提供的服务时,B 系统有多种提供服务的方式,但一切对 A 系统来讲都是透明的。ide
方法重载(overload)
实现的是编译时的多态性(也称为前绑定);方法重写(override)
实现的是运行时的多态性(也称为后绑定)。工具
运行时的多态是面向对象最精髓的东西,要实现多态须要作两件事:性能
抽象
抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。spa
注意:默认状况下面向对象有 3 大特性,封装、继承、多态,若是面试官问让说出 4 大特性,那么咱们就把抽象 加上去。
Java中的多态靠的是父类或接口定义的引用变量能够指向子类或具体实现类的实例对象, 而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法, 也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。设计
JDK
Java Development Kit,它是功能齐全的 Java SDK。它拥有 JRE 所拥有 的一切,还有编译器(javac)和工具(如 javadoc 和 jdb)。它可以建立和编 译程序。code
JRE
Java 运行时环境。它是运行已编译 Java 程序所需的全部内容的集合, 包括 Java 虚拟机(JVM),Java 类库,java 命令和其余的一些基础构件。可是,它不能用于建立新程序。
两者比较
若是你只是为了运行一下 Java 程序的话,那么你只须要安装 JRE 就能够了。
若是你须要进行一些 Java 编程方面的工做,那么你就须要安装 JDK 了。
可是,这不是绝对的:有时,即便你不打算在计算机上进行任何 Java 开发,仍然须要安装 JDK。例如,若是要使用 JSP 部署 Web 应用程序,那么从技术上讲,只是在应用程序服务器中运行 Java 程序。那为何须要 JDK 呢?由于应用程序服务器会将 JSP 转换为 Java servlet,而且须要使用 JDK 来编译servlet。