Java开发工程师面试-基础 (2)

在这里插入图片描述

Java开发工程师面试-基础

面向对象的三大特征

封装:将同一类事物的功能包装在一起,只对外提供访问接口
   好处:
   1. 实现专业的分工(你是使用者只需要关心怎么使用就行,无需了解具体实现细节)
   2. 减少代码耦合(面向接口开发,互不干扰)
   3. 可以自由修改类的内部结构(只要不影响使用者的功能,都可以随意改造)

继承:从已有的类派生出新的类,新的类可以有已有类的属性和行为,并拓展新的功能

多态:
   多态是同一个行为具有多个不同表现形式或形态的能力
   多态是同一个接口,使用不同的实例而执行不同操作

接口和抽象类的异

在这里插入图片描述

Java开发工程师面试-基础

静态和实例变量(方法)的区别:

语法区别:静态变量前要加static关键字,实例则不用

隶属区别:实例变量属于某个对象的属性,而静态属于类

运行区别:静态变量在JVM加载类时创建,实例变量在实例化对象时创建

位置区别:静态变量存放在JVM方法区,无法被回收;实例变量存放在堆中,不用就被回收

父子类实例化过程分析

public class Parent { private static String name = initName(); private int age = initAge(); private static String initName(){ System.out.println("1父类静态变量初始化"); return "程序员Forlan"; } private int initAge(){ System.out.println("2父类普通变量初始化"); return 100; } static { System.out.println("3父类静态代码块"); } { System.out.println("4父类非静态代码块"); } public Parent(){ System.out.println("5父类构造函数"); } } public class Son extends Parent{ private static String name = initName(); private int age = initAge(); private static String initName(){ System.out.println("6子类静态变量初始化"); return "程序员Forlan"; } private int initAge(){ System.out.println("7子类普通变量初始化"); return 100; } static { System.out.println("8子类静态代码块"); } { System.out.println("9子类非静态代码块"); } public Son(){ System.out.println("10子类构造函数"); } } public static void main(String[] args) { new Son(); }

Java开发工程师面试-基础

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysdfd.html