随笔分类 -  JVM

摘要:我们都有个惯性思维,就是实体类需要 implements Serializable 以序列化,序列化有两个作用:1、序列化就是将对象属性转变为二进制数据。2、在网络上进行传输。但是我发现有个项目中实体类并没有 implements Serializable,但是依然可以保存数据库,依然可以在网络上传 阅读全文
posted @ 2022-11-30 10:32 Timeouting 阅读(3400) 评论(0) 推荐(2) 编辑
摘要:Serializable:可序列化接口 序列化:将对象转换为字节流。 反序列化:将字节流转换为对象。 定义实体类会实现Serializable接口,目的就是为了把对象持久化存储或者网络比特流传输。 Serializable相当于转换层,把对象转换成字节流,传字节流比传比对象实例 更方便机器的存取。传 阅读全文
posted @ 2021-10-11 11:50 Timeouting 阅读(313) 评论(0) 推荐(0) 编辑
摘要:虚拟机栈概述 虚拟机栈出现背景: 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同CPU架构不同,所以不能设计为基于寄存器的 跨平台的优点:指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多指令。 栈是运行时的单位,而堆是存储的单位 栈解决程序的运行问题,即程序如何运行,或者 阅读全文
posted @ 2020-03-25 22:06 Timeouting 阅读(283) 评论(0) 推荐(0) 编辑
摘要:栈相关面试题 举例栈溢出的情况?(Stack Overflow):固定大小栈的栈帧爆掉 通过-Xss设置栈的大小:OOM ,可变大小栈扩容时,没有更多的内存可供扩容 调整栈大小,就能保证不溢出吗? 不能,如果自己调用自己(递归)的话,栈空间大可以多跑,在一定程度上可以抱保证递归类问题递的更深,死循环 阅读全文
posted @ 2020-03-25 22:05 Timeouting 阅读(302) 评论(0) 推荐(0) 编辑
摘要:什么是本地方法? 用native修饰的,不能和abstract共同使用的,不显示方法体但却是用非Java语言实现方法体的方法。 static:类变量,通过类可以直接调用 native:非Java语言实现 synchronize:同步 为什么要用Native Method? Java使用起来非常方便, 阅读全文
posted @ 2020-03-25 22:04 Timeouting 阅读(1460) 评论(1) 推荐(0) 编辑
摘要:本地方法栈 Java虚拟机栈用于管理Java方法调用,本地方法栈用于管理本地方法的调用 本地方发栈也是线程私有 允许被实现成固定程度或者可动态扩展的内存大小(在OOM方面是相同的) 本地方法是C语言实现的 它的具体做法Native Method Stack 中等登记native方法,在Excutio 阅读全文
posted @ 2020-03-25 22:03 Timeouting 阅读(215) 评论(0) 推荐(0) 编辑
摘要:4.方法返回地址(Return Address) 存放调用方法的PC寄存器的值【保存了PC寄存器的值,当正常结束后,把这个值给到执行引擎,使线程继续工作】 一个方法的结束有两种方式: 正常执行结束 出现未处理的异常,非正常退出 无论哪种方式退出,此方法在退出后都返回到该方法被调用的位置。方法正常退出 阅读全文
posted @ 2020-03-17 17:17 Timeouting 阅读(1279) 评论(0) 推荐(0) 编辑
摘要:3.动态链接(Dynamic Linking【指向运行时常量池的方法引用】) 每一个栈帧内部都包含有一个指向运行时常量池 中该栈帧方法的引用。包含这个引用的目的就是为了支持当前方法的代码能够实现动态链接(Dynamic Linking)。例如invokednamic指令 在Java源文件被编译到字节 阅读全文
posted @ 2020-03-17 17:15 Timeouting 阅读(3524) 评论(0) 推荐(0) 编辑
摘要:2.操作数栈(Operand Stack) 每一个独立的栈帧中除了包含局部变量表以外,还包含一个LIFO的操作数栈,也叫表达式栈 操作数栈,在方法执行过程中,根据字节码指令,往栈中写入数据或提取数据,即PUSH和POP 某些字节码指令将值压入操作数栈,其余的字节码指令将操作数取出栈。使用后把结果压入 阅读全文
posted @ 2020-03-17 17:13 Timeouting 阅读(1272) 评论(0) 推荐(0) 编辑
摘要:栈帧的内部结构: 局部变量表(Local Variables) 操作数栈(Operand Stack) 动态链接(Dynamic Linking) 方法返回地址(Return Address) 一些附加信息 1.局部变量表 局部变量表:也被称作本地变量表或局部变量数组 定义为一个数字数组,主要用于存 阅读全文
posted @ 2020-03-17 17:11 Timeouting 阅读(1091) 评论(0) 推荐(0) 编辑
摘要:虚拟机栈概述 虚拟机栈出现背景: 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同CPU架构不同,所以不能设计为基于寄存器的 跨平台的优点:指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多指令。 栈是运行时的单位,而堆是存储的单位 栈解决程序的运行问题,即程序如何运行,或者 阅读全文
posted @ 2020-03-17 17:09 Timeouting 阅读(788) 评论(0) 推荐(0) 编辑
摘要:Java变量分类有两种分法 1:按照数据类型分可分为: 1、基本数据类型 2、引用数据类型 2:按照在类中的位置分: 1、成员变量:在使用前,都经过默认初始化复制 类变量(静态变量,被static修饰的成员变量):linking的prepare阶段给变量默认赋值 >initial阶段:给变量显示赋值 阅读全文
posted @ 2020-03-16 11:39 Timeouting 阅读(2226) 评论(0) 推荐(0) 编辑
摘要:PC Register介绍 JVM中的程序计数器(Program Counter Register),Resgiter 的命名原于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。 这里,并非是广义所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴 阅读全文
posted @ 2020-03-14 18:05 Timeouting 阅读(632) 评论(0) 推荐(0) 编辑
摘要:运行时数据区 红色的:一个进程对应的一份,被一个进程里边所有的线程共用的 灰色的:一个线程对相应一份 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的J 阅读全文
posted @ 2020-03-12 18:08 Timeouting 阅读(181) 评论(0) 推荐(0) 编辑
摘要:在JVM中表示两个Class对象是否为同一个类存在两个必要条件: 1.类的完整类名必须一致 2.加载这个类的ClassLoader(指ClassLoader实例对象)必须相同 换句话说,在JVM中,即时这两个类对象(class对象)来源于同一个Class文件,被同一个虚拟机所加载,但只要加载他们的C 阅读全文
posted @ 2020-03-12 16:50 Timeouting 阅读(749) 评论(0) 推荐(0) 编辑
摘要:沙箱安全机制,双亲委派机制 阅读全文
posted @ 2020-03-12 15:57 Timeouting 阅读(546) 评论(0) 推荐(0) 编辑
摘要:关于ClassLoader: ClassLoader类,是一个抽象类,其后所有的;类加载器都继承自ClassLoader(不包括启动类加载器) 方法: getParent()返回该类加载器的超类加载器 loadClass(tring name)加载名称为name的类,返回结果为java.lang.C 阅读全文
posted @ 2020-03-12 14:57 Timeouting 阅读(194) 评论(0) 推荐(0) 编辑
摘要:·JVM支持两种类型的类加载器:分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)·从概念上来讲,自定义类加载器一般指开发人员自定义类的加载器,但是JVM规范是将所有派生于抽像类ClassLoader的类加载器都是自定 阅读全文
posted @ 2020-03-10 20:11 Timeouting 阅读(290) 评论(0) 推荐(0) 编辑
摘要:ClassLoader,类加载器子系统: 负责从文件系统或网络中读取class文件,class文件所在开头有特定的文件标识 ClassLoader只负责class文件的加载,是否能运行,则由Execution Engine决定 加载类的信息存放在一块称为方法区的内存空间。除了类的信息,方法区还可能会 阅读全文
posted @ 2020-03-10 12:53 Timeouting 阅读(314) 评论(0) 推荐(0) 编辑
摘要:内存结构概述 1.内存结构概述 2.类加载器与类的加载过程 3.类加载分类器 4.ClassLoader的使用 5.双亲委派机制 6.其他 这是一个可供参考的简图: 类加载器子系统Class Loader: 字节码文件——》类加载器子系统,包括:加载【引导类加载器、扩展类加载器、应用类(系统)加载器 阅读全文
posted @ 2020-03-08 19:12 Timeouting 阅读(211) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示