Java类什么情况下被初始化?
2024-09-01 03:52:42
1.创建类的实例(new 的方式)。访问某个类或接口的静态变量,或者对该静态变量赋值,调用类的静态方法
2.反射的方式
3.当初始化一个类的时候,如果发现其父类还没有进行初始化,则需先触发其父类的初始化。
4.Java虚拟机启动时被标明为启动类的类,直接使用java.exe命令来运行某个主类(包含main方法的那个类)
5.当使用 JDK 1.7 的动态语言支持时,如果一个 java.lang.invoke.MethodHandle 实例最后的解析结果 REF_getStatic、REF_putStatic、REF_invokeStatic 的方法句柄,并且这个方法句柄所对应的类没有进行过初始化,则需先触发其初始化。
Java类的加载是动态的,它并不会一次性将所有类全部加载后再运行,而是保证程序运行的基础类(像是基类)完全加载到jvm中,至于其他类,则在需要的时候才加载。这当然就是为了节省内存开销。
最新文章
- Android手机总是提示:存储空间不足,解决方法
- 09 Request/Response
- java多线程系列2-线程控制
- centos安装memcache与telnet
- caffe之(三)激活函数层
- OCP prepare 20140703
- Vanya and Field
- [bzoj1041][HAOI2008]圆上的整点
- php 常用的知识点归集(上)
- shell基础及变量
- python3.7 打包成exe程序(只需两行命令)
- JavaScript与java差异
- Hadoop记录-hadoop集群常见问题汇总
- android sdk content loader 0%不动
- Hibernate之一级缓存和二级缓存
- IE盒模型和W3C盒子模型的区别
- Chapter 7(图)
- C++ 带有通配符*与?的字符串匹配
- Java从入门到精通全套教程免费分享
- 【BZOJ4491】我也不知道题目名字是什么 [线段树]