字节码中的两个方法<init>,<clinit>
2015-10-16 00:00
351 查看
摘要: init ,clinit
说了这么多,其实读到这里只要记住两点:在字节码层面<init>表示构造方法,<clinit>表示静态程序块。
ref:The JavaTM Virtual Machine Specification(Second Edition) 3.9 Specially Named Initialization Methods
<init>方法
在JVM层面每一个构造方法都有一个特殊的名字叫<init>,这个名字是在编译器中就提供了的, 由于<init>不规范的java命名,所以我们在java代码里是没法直接使用的,一个实例的初始化方法在虚拟机中是通过调用invokespecial指令来完成的。<clinit>方法
同样对于类或者接口的静态程序块,在JVM层面也给了他一个特殊的名字<clinit>,无论是类或者接口在被加载到class loader的时候,Java虚拟机都会调用这个类或接口的<clinit>的方法,这个方法是个无参的,返回类型为void方法,这个方法名也是编译器指定的,由于这个方法名并不是一个规范的方法名,所以我们无法在代码中直接使用。说了这么多,其实读到这里只要记住两点:在字节码层面<init>表示构造方法,<clinit>表示静态程序块。
ref:The JavaTM Virtual Machine Specification(Second Edition) 3.9 Specially Named Initialization Methods
相关文章推荐
- HDFS客户端的权限错误:Permission denied
- OAuth2.0认证和授权原理
- OAuth2.0认证和授权原理(续)
- svn妙用
- AppleWatch开发入门六——Glance(预览)扩展的应用
- 单链表的归并排序
- 自定义spinner下拉框样式,并实现三级联动
- subversion服务器搭建
- Universal Image Loader库使用方法
- bzoj1798【ahoi2009】维护序列
- Android学习实践:12.列表ListView
- iOS面试题汇总
- 003-scanf函数使用和表达式-C语言笔记
- <LeetCode><Easy> 198 House Robber
- 显示和设置ProgressBar的进度
- Objective-C中的一些细枝末节01(更新)
- Android-alpha-渐变透明度 动画
- 002-IDE的使用与数据类型-C语言笔记
- 20135315宋宸宁—信息安全系统设计基础第六周学习总结
- Diffuse_Shader笔记1.shader和编辑器的交互