2019独角兽企业重金招聘Python工程师标准>>>

<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

转载于:https://my.oschina.net/u/437581/blog/518113

字节码中的两个方法init,clinit相关推荐

  1. 欧尼酱讲JVM(08)——字节码中方法内部结构的剖析

    用到的工具--Jclasslib IDEA提供了插件,很方便. 首先 先看一段代码: public class LocalVariablesTest {private int count = 0;pu ...

  2. 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 使用 DexClassLoader 获取组件类失败 | 失败原因分析 | 自定义类加载器没有加载组件类的权限 )

    文章目录 一.使用 DexClassLoader 获取组件类失败报错 二.失败原因分析 一.使用 DexClassLoader 获取组件类失败报错 在上一篇博客 [Android 逆向]启动 DEX ...

  3. 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 在 PathClassLoader 和 BootClassLoader 之间插入 DexClassLoader )

    文章目录 前言 一.在 PathClassLoader 和 BootClassLoader 之间插入 DexClassLoader 1.创建 DexClassLoader 2.使用 DexClassL ...

  4. Object类中的两个方法——wait和notify使用总结

    Object类中的wait .和 notify方法是用来处理线程的方法,既然定义在Object类中,两个方法的重要程度可见一斑: 两个方法的使用上都很复杂:通过阅读API获得更多对方法的理解: The ...

  5. 解决微信扫码下载的两个方法

    解决微信扫码下载有两个方法:一是去腾讯开发平台http://open.qq.com/上传自己的应用,二是弄一个提示页,提示用户用其他浏览器打开链接. 上传应用到腾讯开发平台 把应用上传到腾讯开发平台, ...

  6. 设计一个接口, 并设计一个实现类实现该接口,演示它们的使用。具体,创建一个名称为Person的接口,在接口中定义两个方法sayHello()和sayBye()。

    设计一个接口, 并设计一个实现类实现该接口,演示它们的使用. 具体,创建一个名称为Person的接口,在接口中定义两个方法sayHello()和sayBye().然后,创建两个实现了Person接口的 ...

  7. MATLAB 保存imshow绘制图片到指定文件夹中的两种方法

    MATLAB 保存imshow绘制图片到指定文件夹中的两种方法 imwrite函数 imwrite(image,filename) imwrite(image,filename)是将图像数据image ...

  8. Python:如何查看一个对象有哪些属性、方法以及查询源码中只有pass的方法的参数

    Python:如何查看一个对象有哪些属性.方法以及查询源码中只有pass的方法的参数 1.问题背景 2.解决思路 2.1.查看对象有哪些属性或方法 2.1.1.dir()函数 2.1.2.help命令 ...

  9. 水平集方法引入主动轮廓模型算法中的两种方法

    水平集方法引入主动轮廓模型算法中的两种方法 1.传统的基于主动轮廓模型和水平集理论的方法 2.变分水平集方法 在讲解水平集理论在主动轮廓模型中的应用前,我们先用流程图说明一下常见的处理主动轮廓模型的流 ...

最新文章

  1. vim 语法高亮显示
  2. python零基础有用吗-10天搞定Python,告诉你有什么用?
  3. it oracle 培训,Oracle数据库技术培训_OracleDBA数据库工程师_Oracle数据库在线学习视频教程_IT职业培训-51CTO学院_精培学院...
  4. XidianOJ 1176 ship
  5. MVC中helper的用法。
  6. nvml.dll 英伟达公司提供的动态库用途
  7. mysql监控平台怎么做_MySQL监控平台的构建方法
  8. 玩转 SpringBoot 2 之整合 WebSocket 篇
  9. 青岛大学计算机科学技术学院几本,郝蓉-青岛大学计算机科学技术学院
  10. linux shell 遍历指定目录下的所有文件夹
  11. qt结合arcgis进行开发
  12. 【第133期】 游戏策划:给@1的简历分析
  13. mysql中数据处理小技巧
  14. react-router-dom文档
  15. 你不知道的JavaScript APIs
  16. React-router - 如何在url中带参数?在url中带参数的几种方法
  17. 在Vue中使用svg格式字体图标
  18. 读书印记 - 《心流:最优体验心理学》
  19. Vivado Block Design流程(MicroBlaze)
  20. 使用Excel中的插入对象功能在Excel中插入Word文档

热门文章

  1. 格式化大容量硬盘为fat32
  2. HDU4658 Integer Partition(整数拆分+判断相同数)
  3. 基于 Nginx XSendfile + SpringMVC 进行文件下载
  4. uva 10453 - Make Palindrome(dp)
  5. 项目经理常扮演的角色
  6. Android Stdio换源以及配置项目
  7. C语言 找数码是否存在
  8. 【面试题】Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?
  9. 笔记“SQL与Access”
  10. 顺序表循环队列:创建初始化、入队、出队、获取队列头数据、计算队列有效数据长度...