Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

本文主要讨论,我在考虑java种private修饰的属性和方法到底有没有被继承下来的一系列思考。

使用反射?

观察class文件?

new一个对象时到底发生了啥?

创建一个对象常常需要经历如下几个过程:父类的类构造器() -> 子类的类构造器() -> 父类的成员变量和实例代码块 -> 父类的构造函数 -> 子类的成员变量和实例代码块 -> 子类的构造函数。

先依次执行实例变量初始化和实例代码块初始化,再执行构造函数初始化。也就是说,编译器会将实例变量初始化和实例代码块初始化相关代码放到类的构造函数中去,并且这些代码会被放在对超类构造函数的调用语句之后,构造函数本身的代码之前。

  • 类的实例化是指创建一个类的实例(对象)的过程;
  • 类的初始化是指为类中各个类成员(被static修饰的成员变量)赋初始值的过程,是类生命周期中的一个阶段。

参考

深入理解Java对象的创建过程:类的初始化与实例化

评论