12 2020 档案
摘要:1.虚拟机栈概述 由于跨平台性的设计,Java 的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 栈实现的优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 有不少Java开发人员一提到Java内存结构,就会非常粗略度地将JVM中的内
阅读全文
摘要:1.简介 JVM中的程序计数寄存器(Program Counter Register),Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息,CPU只有把数据装载到寄存器才能够运行。 这里的寄存器,并非是广义上所指的物理寄存器,将其翻译为PC计数器(或指令计数器)更为贴切一些(也称
阅读全文
摘要:1.运行时数据区概述 1.1 在JVM 中的位置 1.2 内部划分 当我们通过前面的:类的加载 → 验证 → 准备 → 解析 → 初始化 这几个阶段完成后,执行引擎就会对我们的类进行使用,同时执行引擎将会使用到我们的运行时数据区。 运行时数据区处在JVM 的内存区域。我们通过磁盘或者网络IO得到的数
阅读全文
摘要:1.概述 1.1 类加载器子系统在Java JVM中的位置 1.2 类加载器子系统的具体实现 1.3 类加载器子系统的作用 ① 负责从文件系统或者网络中加载.class文件,Class 文件在文件开头有特定的文件标识。 ② ClassLoader只负责Class 文件的加载,至于它是否可以运行,则由
阅读全文
摘要:java SE for—each 不能操作元素本身 我的需求 将只包含 1和0 的二维数组的所有元素反置,即所有1变成0、0变成1。 原始数组: 我的做法 使用for—each操作数组: public class test { public static void main(String[] arg
阅读全文