Java虚拟机
Canliture
hello, 程序分析!
展开
-
静态语义分析构建
静态语义分析构建静态语义处理;学习笔记,仅供个人知识导航用处,不作其它用途部分段落翻译自博客中列出的 参考文献1. JDT(Java开发工具, Java development tools)了解JDT是啥,了解其工具集1.1 JDT插件的组件内容JDT APTAnnotation Processor Tool(注解处理工具)JDT Core非UI的基础设施...原创 2019-10-21 16:28:41 · 990 阅读 · 0 评论 -
Java中ClassLoader工作流程
原创 2019-08-25 18:23:38 · 138 阅读 · 0 评论 -
invokestatic and invokenative impl
Simple implementation of invokestatic.原创 2019-08-26 11:57:52 · 189 阅读 · 0 评论 -
Java虚拟机实践(2)——常见代码的字节码分析实践
文章导航0. 说明1. i++与++i2. 字符串拼接符 +3. try-finally 代码块4. final String0. 说明这里我们会提到的常见表达式有:i++,++i字符串拼接操作符 +try-finally代码块final String我的测试环境为平台:Win10 Java 8IDE: IntelliJ IDEA字节码查看器:Jclasslib ( 安装...原创 2019-06-13 00:29:36 · 184 阅读 · 0 评论 -
Java虚拟机实践(1)——逐个字节分析.class文件字节码二进制内容
文章导航1. 说明2. .Java源文件3. 编译4. Class文件格式5. 文件头 ( 魔数+版本号 )6. 常量池7. 类的属性8. 类的字段(Filed)9. 类的方法信息(Method)1. 说明我们将使用一个简单的程序Test.java,我们将其编译成Test.class文件,并且逐个字节地分析此.class文件的二进制文件内容,分析每个字节的含义,从而帮助我们理解Java编译器(...原创 2019-06-11 00:30:48 · 736 阅读 · 0 评论 -
Java RTTI(RunTime Type Information,运行时类型信息)
0. IntroductionJava 运行时类型信息,简称RTTI;RTTI能够让我们在程序正在运行时发现并使用类型信息; RTTI能够让我们放开编译时面向类型的约束,编写更强大的代码RTTI可以分为两种:传统的RTTI。这是在编译时所有的类型就可用。反射机制(reflection machanism)。它能够帮助我们在运行时发现类型信息。1. RTTI的必要性多态是面向对象编程...原创 2019-07-15 16:50:52 · 609 阅读 · 0 评论 -
java.lang.Integer包装类的缓存
1. 发现问题先看一段代码:Integer a = 1;Integer b = 1;Integer c = 500;Integer d = 500;System.out.print(a == b);System.out.print(c == d);输出是啥?输出的结果如下:truefalse为啥?两个不都是引用吗?要输出false应该都输出false啊?下面解释原因。2...原创 2019-07-25 19:02:25 · 232 阅读 · 0 评论 -
仿Hex-Editor,实现简单地二进制文件查看器JHexer
0. 前言当对Java语言的理解逐渐加深时,我们会有必要对.class文件有一定的了解,那么就少不了查看二进制文件。互联网上有很多的工具,能够帮助我们有效地查看,分析.class文件字节码。那么我们何不自己写一个小工具来查看二进制文件呢?当然,我们一般都是查看16进制的数据,所以这里尝试写一个最简单的二进制文件查看器,我们称之为JHexer。1. 设计模式建造者(Builder)设计模式...原创 2019-07-22 21:58:30 · 1921 阅读 · 6 评论 -
invokestatic,invokespecial,invokevirtual,invokeinterface
有四种方法调用相关的字节码:invokestatic,invokespecial,invokevirtual,invokeinterface这里简单总结它们的区别。invokestatic: 调用静态方法invokespecial: 调用无须动态绑定的实例方法,例如构造函数,私有方法,通过super关键字调用的超类方法。剩下的方法属于动态绑定的方法。invokeinterface,inv...原创 2019-08-25 19:24:30 · 521 阅读 · 1 评论