首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/769276

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

Java虚拟机(二):类加载子系统

类加载器子系统 一、JVM架构图 二、 类加载子系统运行流程 加载 1.通过一个类的全限定类名获取定义此类的二进制字节流 2.将这个字节流所代表的静态存储结构转换为方法区运行时数据结构 3.在内存中生成一个代表这个类的java.lang.Class对象,作为方法区中这个类的各种数据的访问入口 链接:验证、准备和解析 验证: 1. 确保Class字节的字节流中包含的信息符合JVM的要求,保证被加载类的正确性,不会危害虚拟机自身安全 2. 验证四种格式:文件格式验证、源数据验证、字节码验证和符号引用验证 准备: 为类变量(含有static修饰的变量)分配内存并且设置该类变量的初始默认值,即零值(各自类型零值均不相同)、 这里不包含用final修饰的static,因为final在编译的时候就会分配了,准备阶段会显式初始化 这里不会为实例变量分配初始化,类变量会分配在方法区中,实例变量是会随着对象一起分配到Java堆中 解析: 事实上,解析操作往往会伴随着JVM在执行完初始化之后再执行 解析就是将常量池内的符号引用转换为直接引用的过程 符号引用:就是一组符号来表述所引用的目标,符号引用的字面量...

Java虚拟机(四):程序寄存器

一、程序寄存器(PC)概念 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟 下图是一张经典的JVM工作流程图 在正在运行线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧,与这个栈帧相关联的方法称为当前方法 我们可以看到PC寄存器(程序计数器)与执行引擎指向同一地址,下面我们来探究PC寄存器的作用 二、程序寄存器的作用 PC寄存器是用来存储指向下一条指令的地址,也即将将要执行的指令代码,由执行引擎读取下一条指令,并解释运行 它是一块很小的内存空间,几乎可以忽略不计,也是运行速度最快的存储区域 在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM指令地址;或者,如果实在执行native方法,则是未指定值(undefined),因为程序计数...

相关文章

发表评论

资源下载

更多资源
Apache Tomcat

Apache Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。