JVM中相关方法的调用的指令
invokestatic
调用静态方法。
invokespecial
用于调用构造器方法、私有方法、父类方法。
invokevirtual
用于调用类的所有虚方法。
invokeinterface
用于调用接口方法。
解析(resolution)与分派(dispatch)
解析
解析调用一定是个静态的过程,在编译期间就完全确定,在类装载的解析阶段...
分类:
其他好文 时间:
2014-08-28 13:24:09
阅读次数:
308
同样,一个Class对象必须知道自己的超类、超级接口。因此,Class对象会引用自己的超类和超级接口的Class对象。这种引用一定是实例引用。(实际上,超类、超级接口的引用也存储在常量池中,但为了区分依赖类的引用,将它特殊表述一下。)因此,我暂且得到两条结论。结论一:持有一个Class对象的引用,则...
分类:
其他好文 时间:
2014-08-25 19:10:04
阅读次数:
258
AlienTech for better life!~...
分类:
编程语言 时间:
2014-06-25 06:43:33
阅读次数:
272
类装载器ClassLoader类装载器就是寻找类的字节码文件,并构造出类在JVM内部表示的对象组件。类装载器把一个类装入JVM中,要经过三步:1.装载:查找和导入Class文件;2.链接:执行校验、准备和解析(解析是可以选择的);3.初始化:对类的静态变量、静态代码块执行初始化工作;..
分类:
编程语言 时间:
2014-06-22 08:11:36
阅读次数:
276
一、预先需要掌握的知识(java虚拟机) 1)java虚拟机的方法区:
java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区。方法区的主要作用是存储被装载的类
的类型信息,当java虚拟机装载某个类型的时候,需要类装载器定位相应的class文...
分类:
编程语言 时间:
2014-06-07 04:26:02
阅读次数:
269
1.方法区 类的全限定名、直接超类的全限定名、该类是类或者接口、访问修饰符、直接超接口全限定名; 运行时常量池、字段、方法、静态变量、到类装载器的引用、到类class的引用2.栈内存 局部变量区、操作数栈、帧数据区3.堆内存 存放由new创建的对象和数组*栈内存和堆内存 栈存取速度比堆快,仅次于寄存...
分类:
编程语言 时间:
2014-05-26 01:08:23
阅读次数:
329
三种方式取得类的字节码,取得类的类装载器,使用字节码.getClassLoader()方法获得
分类:
编程语言 时间:
2014-05-24 05:37:06
阅读次数:
217
java通过所谓的沙箱安全模型保证了其安全性,下面我们就来看看java提供的安全沙箱机制。
组成沙箱的基本组件如下:
1.类装载器结构;
2.class文件检验器;
3.内置于java虚拟机(及语言)的安全特性;
4.安全管理器及java API。
一.类装载器体系结构
1.防止恶意代码去干涉善意的代码。
这是通过...
分类:
编程语言 时间:
2014-05-21 15:22:05
阅读次数:
338
JVM加载class文件的原理机制1.Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中2.java中的类大致分为三种:
1.系统类 2.扩展类 3.由程序员自定义的类3.类装载方式,有两种 1.隐式装载, ...
分类:
其他好文 时间:
2014-05-18 19:23:57
阅读次数:
354