zoukankan      html  css  js  c++  java
  • java初始化深度剖析

    当用一个类来创建对象的时候,JVM会帮我们执行下面的6个步骤。

    1、在磁盘上找到对应内的class文件;

    2、加载class文件到内存,初始化所有静态域(成员变量和方法);

    3、如果使用new class()时,在堆上开辟一片空间;

    4、将这片空间清零(对于基本类型来说,设置为0;对于引用类型来说,设置为null);

    5、执行非静态域的成员变量的初始化(包括普通类型和应用类型);

    6、执行构造函数。

         这就是为什么类里面的静态成员和静态函数可以不用创建对象,直接用类来访问的原因,因为这些静态域已经在第2步,完成了加载和初始化,已经在内存中生效了,

    并且只在内存中只有一份,也就是说无论这个类被用来创建了多少对象,这些静态域只被加载和初始化一次。

      如果没有创建对象,那么只会执行上面的1和2两个步骤,3,4,5,6,要在创建对象的时候才会被执行。

  • 相关阅读:
    shell脚本大小写转换
    python写xml及几个问题
    Java集合系列导读
    Java集合系列之Collection接口
    并发编程之锁机制
    Java中的堆内存和栈内存
    Java与ElasticSearch的交互操作
    ElasticSearch基础概念
    Java的对象和类
    Spring Validator参数校验
  • 原文地址:https://www.cnblogs.com/chencanjian/p/5996532.html
Copyright © 2011-2022 走看看