java_虚拟机_class文件
xinjing_wangtao
这个作者很懒,什么都没留下…
展开
-
从字节码层面看“HelloWorld”
从字节码层面看“HelloWorld” 一、HelloWorld 字节码生成 众所周知,Java 程序是在 JVM 上运行的,不过 JVM 运行的其实不是 Java 语言本身,而是 Java 程序编译成的字节码文件。可能一开始 JVM 是为 Java 语言服务的,不过随着编译技术和 JVM 自身的不断发展和成熟,JVM 已经不仅仅只运行 Java 程序。任何能编译成为符合转载 2016-08-21 11:45:32 · 743 阅读 · 0 评论 -
通过反编译深入理解Java String及intern
通过反编译深入理解Java String及intern 一、字符串问题 字符串在我们平时的编码工作中其实用的非常多,并且用起来也比较简单,所以很少有人对其做特别深入的研究。倒是面试或者笔试的时候,往往会涉及比较深入和难度大一点的问题。我在招聘的时候也偶尔会问应聘者相关的问题,倒不是说一定要回答的特别正确和深入,通常问这些问题的目的有两个,第一是考察对 JAVA 基础知识的了转载 2016-08-21 11:49:41 · 719 阅读 · 0 评论 -
JVM内幕:Java虚拟机详解
JVM内幕:Java虚拟机详解 字数6435 阅读424 评论1 喜欢9 编译地址: jamesdbloom 译者: ImportNew.com - 挖坑的张师傅 原文地址: http://www.importnew.com/17770.html 这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部转载 2016-08-21 11:50:14 · 493 阅读 · 0 评论 -
个人理解 java虚拟机中的符号引用和直接引用
在java中,一个java类将会编译成一个class文件。在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool(假设)来表示Tool类的地址。而在类装载器装载People类时,此时可以通过虚拟机转载 2016-08-24 15:09:33 · 302 阅读 · 0 评论 -
Javassist学习总结
要想将编译时不存在的类在运行时动态创建并加载,通常有两种策略: 1. 动态编译 2. 动态生成二进制字节码(.class) 对于第二种策略,实际上已经有诸多比较成熟的开源项目提供支持,如CGLib、ASM、Javassist等。这些开源项目通常都具备两方面的功能: 1. 动态创建新类或新接口的二进制字节码 2. 动态扩展现有类或转载 2016-08-25 21:23:15 · 375 阅读 · 0 评论