摘要: 栈帧的内部结构: 局部变量表(Local Variables) 操作数栈(Operand Stack) 动态链接(Dynamic Linking) 方法返回地址(Return Address) 一些附加信息 1.局部变量表 局部变量表:也被称作本地变量表或局部变量数组 定义为一个数字数组,主要用于存 阅读全文
posted @ 2020-03-17 17:11 Timeouting 阅读(1136) 评论(0) 推荐(0)
摘要: 虚拟机栈概述 虚拟机栈出现背景: 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同CPU架构不同,所以不能设计为基于寄存器的 跨平台的优点:指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多指令。 栈是运行时的单位,而堆是存储的单位 栈解决程序的运行问题,即程序如何运行,或者 阅读全文
posted @ 2020-03-17 17:09 Timeouting 阅读(804) 评论(0) 推荐(0)
摘要: Java变量分类有两种分法 1:按照数据类型分可分为: 1、基本数据类型 2、引用数据类型 2:按照在类中的位置分: 1、成员变量:在使用前,都经过默认初始化复制 类变量(静态变量,被static修饰的成员变量):linking的prepare阶段给变量默认赋值 >initial阶段:给变量显示赋值 阅读全文
posted @ 2020-03-16 11:39 Timeouting 阅读(2260) 评论(0) 推荐(0)
摘要: PC Register介绍 JVM中的程序计数器(Program Counter Register),Resgiter 的命名原于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。 这里,并非是广义所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴 阅读全文
posted @ 2020-03-14 18:05 Timeouting 阅读(674) 评论(0) 推荐(0)
摘要: 运行时数据区 红色的:一个进程对应的一份,被一个进程里边所有的线程共用的 灰色的:一个线程对相应一份 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的J 阅读全文
posted @ 2020-03-12 18:08 Timeouting 阅读(186) 评论(0) 推荐(0)
摘要: 在JVM中表示两个Class对象是否为同一个类存在两个必要条件: 1.类的完整类名必须一致 2.加载这个类的ClassLoader(指ClassLoader实例对象)必须相同 换句话说,在JVM中,即时这两个类对象(class对象)来源于同一个Class文件,被同一个虚拟机所加载,但只要加载他们的C 阅读全文
posted @ 2020-03-12 16:50 Timeouting 阅读(757) 评论(0) 推荐(0)
摘要: 沙箱安全机制,双亲委派机制 阅读全文
posted @ 2020-03-12 15:57 Timeouting 阅读(569) 评论(0) 推荐(0)
摘要: 关于ClassLoader: ClassLoader类,是一个抽象类,其后所有的;类加载器都继承自ClassLoader(不包括启动类加载器) 方法: getParent()返回该类加载器的超类加载器 loadClass(tring name)加载名称为name的类,返回结果为java.lang.C 阅读全文
posted @ 2020-03-12 14:57 Timeouting 阅读(201) 评论(0) 推荐(0)
摘要: ·JVM支持两种类型的类加载器:分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)·从概念上来讲,自定义类加载器一般指开发人员自定义类的加载器,但是JVM规范是将所有派生于抽像类ClassLoader的类加载器都是自定 阅读全文
posted @ 2020-03-10 20:11 Timeouting 阅读(301) 评论(0) 推荐(0)
摘要: ClassLoader,类加载器子系统: 负责从文件系统或网络中读取class文件,class文件所在开头有特定的文件标识 ClassLoader只负责class文件的加载,是否能运行,则由Execution Engine决定 加载类的信息存放在一块称为方法区的内存空间。除了类的信息,方法区还可能会 阅读全文
posted @ 2020-03-10 12:53 Timeouting 阅读(320) 评论(0) 推荐(0)