摘要: JVM(五)本地方法接口和本地方法栈 1 本地方法 一个Native Method就是一个Java调用非Java代码的接口。 在定义本地方法的时候,不提供实现体 标识符native能够和除了abstract的java标识符连用 public class NativeTest{ public nati 阅读全文
posted @ 2023-05-17 18:57 Tod4 阅读(33) 评论(0) 推荐(0) 编辑
摘要: JVM(四)虚拟机栈(三)虚拟机栈面试题 1 举例栈溢出的情况? 当方法调用不停将栈帧压入虚拟机栈导致栈内空间不足而出现StackOverFlowError即是出现了栈溢出 可以通过-Xss设置栈的大小,栈的大小可以是固定的也可以是动态变化的,如果固定且超出设定值则就会出现栈溢出;如果是动态变化的, 阅读全文
posted @ 2023-05-17 18:56 Tod4 阅读(25) 评论(0) 推荐(0) 编辑
摘要: JVM(四)虚拟机栈(一)栈帧结构:局部变量表与操作数栈 1 虚拟机栈 1.1 简介 虚拟机栈出现的背景:由于跨平台性的设计,Java的指令都是根据栈来设计的,不同平台的CPU架构不同,所以不能基于寄存器。这样做的优点是跨平台,指令集更小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令 阅读全文
posted @ 2023-05-17 18:56 Tod4 阅读(234) 评论(0) 推荐(0) 编辑
摘要: JVM(三)虚拟机栈(二)栈帧结构:动态链接、方法返回地址与附加信息 1 动态链接技术 每一个栈帧,都包含着一个指向运行时常量池中该指针所属方法的引用,即方法区中的方法地址,包含该引用的目的就是为了支持当前方法能够实现动态链接。所以动态链接又称为运行时常量池中的方法引用 在java源文件被编译为字节 阅读全文
posted @ 2023-05-17 18:55 Tod4 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区概述及线程 简介 内存是硬盘和CPU的中间仓库和桥梁,承载着操作系统和应用程序的实时运行。JVM的内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对内存的划分方式和管理机制存在着部分差异。 如下图,主要流程是类加载子系统加载字节码文件 阅读全文
posted @ 2023-05-17 18:55 Tod4 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 类加载器子系统和类加载过程 1 简介 类加载器子系统:负责从文件系统或者网络中加载字节码文件,字节码文件在文件开头有特定的文件标识(Coffee Baby)。ClassLoader只负责文件的加载,它是否可以运行由Execution Engine决定。 加载的类信息存放在内存中一块成为方法区的空间, 阅读全文
posted @ 2023-05-17 18:55 Tod4 阅读(55) 评论(0) 推荐(0) 编辑
摘要: [toc] ### JVM与Java体系结构 Java是目前应用最广泛的软件开发平台之一,是一门**跨平台的语言**,write once,runanyWhere。Java程序编译为字节码文件之后,可以被各个平台的JVM解释运行。 而JVM则是**跨语言的平台**,不仅仅支持java语言,其他提供的 阅读全文
posted @ 2023-05-17 18:55 Tod4 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 1054. 距离相等的条形码 在一个仓库里,有一排条形码,其中第 i 个条形码为 barcodes[i]。 请你重新排列这些条形码,使其中任意两个相邻的条形码不能相等。 你可以返回任何满足该要求的答案,此题保证存在答案。 示例 1: 输入:barcodes = [1,1,1,2,2,2] 输出:[2 阅读全文
posted @ 2023-05-17 11:14 Tod4 阅读(17) 评论(0) 推荐(0) 编辑