面试直击之javaSE复习day1

  • 类初始化过程

①一个类要创建实例需要先加载并初始化该类   

  • main方法所在的类先加载和初始化  

②一个子类初始化需要先初始化父类

③一个类 初始化就是执行()方法

  • ()方法由静态类变量显示赋值代码和静态代码块组成
  • 类变量分类专栏显示赋值代码和静态代码块从上到下顺序执行
  • ()方法只执行一次

 

  • 实例初始化过程

 ①实例初始化就是执行()方法

  • ()方法可能重载有多个,有几个构造器就有几个()方法
  • ()方法由非静态实例变量显示赋值代码和非静态代码块,对应构造器代码组成
  • 非静态实例变量显示赋值代码和非静态代码块从上到下顺序执行,而对应构造器的代码最后执行
  • 每次创建实例对象,调用对应构造器,执行的就是对应的方法
  • 方法的首行是super()或super(实参列表),即对应父类的方法

总结:代码的执行顺序:

1)父类的静态变量和静态代码块(先声明的先执行)

2)子类的静态变量和静态代码块(先声明的先执行)

3)父类的非静态变量和代码块(先声明的先执行)

4)父类的构造函数

5)子类的非静态变量和代码块(先声明的先执行)

6)子类的构造函数 

 

  •  方法的重写(Override)

 ①哪些方法不可以被重写

  • final方法
  • 静态方法
  • private等子类中不可见方法

②对象的多态性

  • 子类如果重写了父类的方法,通过总类调用的一定是父类重写过的代码
  • 非静态方法默认的调用对象是this
  • this对象在构造器或者说方法中就是正在创建的对象

 

  • 方法的参数传递机制

①形参是基本数据类型

  • 传递数据值

②形参是引用数据类型

  • 传递地址值
  • 特殊的类型:String,包装类等对象不可变性 

你可能感兴趣的:(面试直击之javaSE复习day1)