方法区的一些细节-2
2017-08-18 14:30
190 查看
对类加载器的引用:
jvm必须知道一个类是启动加载器加载的还是用户加载器加载的,如果一个类型是用户加载器加载的,jvm会把这个类加载器的一个引用作为类信息的一部分保存到方法区。
jvm在动态连接的时候需要用到这个信息,当解析一个类型到另一个类型的引用时,必须保证两个类型都是同一个用户加载器加载的。
对Class类型的引用:
jvm为每一个加载的类型都创建一个java.lang.Class的实例。jvm通过某些方法把Class实例与存储在方法区的类型信息联系起来。
通过两种方式获取Class实例,
Class类的静态方法,Class.forName() 通过类的全限定名称获取该类的Class实例。
该类对象实例的getClass()。
Class实例中的getClassLoader()返回类加载器的引用,如果是启动加载器加载的,则为null.
方法表:
jvm为每个加载的类的类型信息中都添加了一个方法表,是一组对类实例方法的直接引用(包括父类),jvm可以通过方法表快速激活实例方法。
jvm必须知道一个类是启动加载器加载的还是用户加载器加载的,如果一个类型是用户加载器加载的,jvm会把这个类加载器的一个引用作为类信息的一部分保存到方法区。
jvm在动态连接的时候需要用到这个信息,当解析一个类型到另一个类型的引用时,必须保证两个类型都是同一个用户加载器加载的。
对Class类型的引用:
jvm为每一个加载的类型都创建一个java.lang.Class的实例。jvm通过某些方法把Class实例与存储在方法区的类型信息联系起来。
通过两种方式获取Class实例,
Class类的静态方法,Class.forName() 通过类的全限定名称获取该类的Class实例。
该类对象实例的getClass()。
Class实例中的getClassLoader()返回类加载器的引用,如果是启动加载器加载的,则为null.
方法表:
jvm为每个加载的类的类型信息中都添加了一个方法表,是一组对类实例方法的直接引用(包括父类),jvm可以通过方法表快速激活实例方法。
相关文章推荐
- Jquery中的一些细节(一)--------------->Jquery加载调用多个函数(方法)需要注意的细节
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- POJ 1154题解,此题不难理解方法就是DFS,属于水题。不过有一些细节要注意。
- 个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- jQuery ajax —— 一些细节以及主函数扩展出来的方法
- 分享网站SEO优化的一些常规方法和细节
- 【IO流一些小细节】IO流中一些方法的使用
- 关于jQuery插件的index选择器index()方法的一些操作细节
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- 个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
- 分享网站SEO优化的一些常规方法和细节
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- 【Spring】queryForXXX()方法使用的一些细节问题
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- eclipse 中添加自定义 classpath 的方法,以及 javac 和 java 的一些使用细节
- 【细说Java】关于main方法的一些细节