• 对象初始化


    (类初始化和对象初始化的区别?)
    Person p = new Person("zhangsan",20);

    这句话都做了什么事情?
    0,栈内存分配main中的p空间。
    1,因为new用到了Person.class文件,所以会先找到Person.class文件加载到内存中。
    2,执行该类中的static代码块,给Person.class类进行初始化。
    3,在堆内存中开辟空间,分配内存地址。
    4,在堆内存中建立对象的特有属性,并进行默认初始化。
    5,对属性进行显示初始化。
    6,对对象进行构造代码块初始化。
    7,对对象进行对应的构造函数初始化。
    8,将内存地址赋给栈内存中的p变量。
    初始化顺序:类初始化>>属性默认初始化>>属性显示初始化 >>构造代码块初始化 >>构造函数初始化。


    当创建一个类时,如 Student stu = new Student();
    jvm到底做了些什么?
    1.栈内存分配main中的stu空间。
    2.因为new用到了Studetn.class文件,所以会先找到Student.class文件加载到内存中。
    3.执行父类静态代码块。(类初始化)
    4.执行子类静态代码块。(类初始化)
    5.在堆内存中建立对象的特有属性,并进行默认初始化。


    6.父类显示初始化。**
    7.执行父类构造代码块。
    8.执行父类构造函数。


    9.子类显示初始化。**
    10.执行子类构造代码块。
    11.执行子类构造函数。

  • 相关阅读:
    微信分享相关
    移动端界面适配
    MongoDB安装使用
    MongoDB可视化工具RoboMongo
    PhotoSwipe图片展示插件
    BootStrap下拉框搜索功能
    Node.js 特点
    原生node实现本地静态页面的展示
    阿里巴巴电话初面
    react动态添加多个输入框
  • 原文地址:https://www.cnblogs.com/lsx1993/p/4648633.html
Copyright © 2020-2023  润新知