码迷,mamicode.com
首页 > 其他好文 > 详细

什么时候会发生类初始化

时间:2020-01-26 16:03:14      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:一个   反射   子类初始化   虚拟机启动   main   方法   变量   lang   常量   

  • 类的主动引用(一定会发生类的初始化)
    • 当虚拟机启动,先初始化main方法所在的类
    • new一个类的对象
    • 调用类的静态成员(除了final常量)和静态方法
    • 使用java.lang.reflect包的方法对类进行反射调用。
    • 当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类
  • 类的被动引用(不会发生类的初始化)
    • 当访问一个静态域时,只要真正声明这个域的类才会被初始化。如:当通过子类引用父类的静态变量,不会导致子类初始化
    • 通过数组定义类引用,不会触发此类的初始化
    • 引用常量不会触发此类的初始化(常量在链接阶段就存入调用类的常量池中)

什么时候会发生类初始化

标签:一个   反射   子类初始化   虚拟机启动   main   方法   变量   lang   常量   

原文地址:https://www.cnblogs.com/zitai/p/12234272.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!