JVM-类加载
来源:互联网 发布:sql 包含几个字符 编辑:程序博客网 时间:2024/06/05 12:39
类加载:类加载机制,类加载器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
类加载机制包括:类加载的时机、类加载的过程
类加载器包括:类加载器的种类,双亲委派机制
ps:类加载器只是 类加载5个阶段(加载、验证、准备、解析、初始化)
中的加载阶段而已 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一部分:
类加载的过程:加载、验证、准备、解析、初始化
加载阶段的时机:很多内容
验证阶段:很多内容,很重要,但不是必须的。
准备阶段:要学习的内容较少。就是比如,变量值都设置为0,真正的初始化发生在 初
始化阶段
解析阶段:就是 符号引用,直接引用,找到方法的位置
初始化阶段:
(未完待续,还有很多不记得了) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二部分:
类加载器的种类:
从java虚拟机角度来说,分为两类:一类是启动类加载器(BootStrap ClassLoader),是C++语言写的,放在虚拟机外部。另一类即使所有其他的类加载器,它们都是java写的,并且都继承了java.lang.ClassLoader类
从用户程序员角度来说,可以分为更加细致些。程序员经常会用到的三类类加载器:
启动类加载器(BootStrap-ClassLoader)、扩展类加载器(Extension-ClassLoader)、应用程序类加载器(Application-ClassLoader)
双亲委派模型:
各种类加载器组织起来的层次关系,叫做双亲委派模型
双亲委派机制:
就是当要加载类的时候,(除了BootStrap ClassLoader)所有的类加载器都不会首先自己尝试去加载,而是传递给上一层父类加载器,父类加载器做同样的动作,直到加载请求传递到 启动类加载器。如果父类加载器不能完成加载,子类才会尝试去加载。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
参考书目:
《深入理解java虚拟机》
ps:本书第6章讲述了 java程序是如何存储的
本书第7章讲述了 java程序是如何载入(创建)的
本书第8章讲述了如何执行的问题,虚拟机如何执行定义在Class文件中的字节码
ps:字节码文件,是方法的执行体,是在java栈的栈帧中运行的??
ps: java文件-》编译成Class文件,然后Class中编译的类的信息,静态常量,变量啥的,到时候加载的时候,直接放在 JVM内存的方法区即可,而局部变量和方法体,则放在运行时的java栈的栈帧中即可。
- 【JVM】JVM类加载机制
- JVM类加载1-加载
- jvm类加载过程
- JVM类加载
- JVM 类加载过程
- jvm :类加载原理
- JVM加载类详情
- JVM类加载器
- JVM类加载器
- JVM类加载,详谈
- JVM加载类原理
- jvm类加载机制
- JVM类加载机制
- JVM-类加载机制
- JVM类加载机制
- JVM类加载机制
- jvm 类加载器
- JVM 类加载过程
- Linux下 nginx + php 环境搭建
- 大数据集群工作流及任务管理组件对比
- OpenCV ARM移植(交叉编译opencv)
- hihocoder #1076:与链
- android声明的权限
- JVM-类加载
- 【STL】空间配置器剖析(完结)
- 简单实用的android 图片的压缩
- Integer.ParseInt()异常
- JS怎样调用Android本地原生方法
- 一些经典面试题的思考与解析
- iOS 判断设备
- ZeroMQ,史上最快的消息队列 —– ZMQ的学习和研究
- truts2.1 Tabbedpanel标签实现选项卡效果