1、在栈中开辟一个空间p。
2、通过类加载器装载classs文件。
3、执行类中的静态代码块。
4、在堆内存中开辟空间,分配内存地址。
5、执行成员默认初始化。
6、执行构造代码块。
7、执行构造函数初始化、
8、把堆内存中的地址赋给应用变量。
我们可以测试看看结果
public class User implements Serializable { private static final long serialVersionUID = 1L; private String id; private String name; private int age; { System.out.println("代码块"); } static { System.out.println("静态代码块"); } public User() { super(); System.out.println("默认构造函数"); } public User(String id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; } public static void main(String[] args) { User u = new User(); User u1 = new User(); } }
结果:
静态代码块
代码块
默认构造函数
代码块
默认构造函数
相关推荐
“礼让”原则学习Java对象初始化顺序
在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,网上关于Java中对象初始化顺序的文章很多,这篇文章我们将详细介绍Java中对象初始化顺序。有需要的可以参考学习。
以下这段小程序对调用对象构造函数时,父类构造函数、成员变量初始化函数,以及非静态初始化块调用顺序进行验证,不考虑静态成员及静态初始化块
介绍java对象的创建、初始化、和引用。并分析一下JAVA中对象创建和初始化过程中涉及的相关概念问题。
主要介绍了c#对象初始化顺序,实例分析了C#对象初始化的相关使用技巧与调用顺序,需要的朋友可以参考下
本篇文章介绍了,Java对象初始化顺序的使用。需要的朋友参考下
详细讲解java类中静态变量,普通标量,对象、基本类型的初始化顺序。
1:虚拟机加载OOPDemo类(省略详细加载过程(装载、链接、初始化)),提取类型信息(具体保存哪些类型信息查看博文:Java虚拟机体系结构),存储到方法区中,对应图中的绿色矩形区域。 2:通过保存在方法区的字节...
本篇文章介绍了,Java对象初始化顺序的使用。需要的朋友参考下
java对象的初始化顺序[参考].pdf
类和对象的初始化过程.zip
类的初始化顺序,适用于任何一种面向对象的语言。真正了解面向对象的程序的流程。配有实例
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成JVM字节码后,对JVM执行过程的关键点进行全面解析,并在文中穿插入了相关JVM规范和JVM的部分内部理论知识,以理论与实际结合的方式...
今天用了jmock对进行单元测试编码,发现一个比较奇怪的语法,static使用方法,见下面例子
memset初始化std::string对象时,按字节顺序将std::string对象所在空间清零,破坏了std::string对象的成员结构,使Myroxy指针资源变为野指针,操作其迭代器会出现不可预知的异常,在存储字符串时可能分配了不必要的...
类对象的构造顺序是这样的: 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员 2.进入构造函数后在构造函数中执行一般计算 1.类里面的任何成员变量在定义时是不能初始化的。 2.一般的数据成员可以在...
本文对Java如何执行对象的初始化做一个详细深入地介绍。有需要的小伙伴们可以参考。
对象创建和初始化过程3.1 new对象底层字节码指令分析3.2 对象初始化过程详解【重点】3.2.2 实例变量初始化顺序分析3.2.3 继承中实例变量初始化顺序四 类实例化顺序总结4.1 类初始化阶段4.2 对象的创建和初始化阶段...
电脑上存储的工作过程中发现的Java代码工具包,既有Swing程序也有工具类!工具类可以节约敲代码数据,有用的直接用就好。