向阳而生
对象实例化、内存布局与访问定位 对象实例化、内存布局与访问定位
对象的实例化大厂面试题 美团: 对象在JVM中是怎么存储的? 对象头信息里面有哪些东西? 蚂蚁金服: 二面:java对象头里有什么 对象创建的方式 new:最常见的方式、单例类中调用getInstance的静态类方法,XxxBuild
方法区 方法区
栈、堆、方法区的交互关系从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型场景就是数据库连接管理,以及会话管理。 栈、堆、方法区的交互关系 下面涉及了对象的访问定位 Person 类的 .cla
堆
堆的核心概述堆与进程 堆针对一个 JVM 进程来说是唯一的。也就是一个进程只有一个 JVM 实例,一个 JVM 实例中就有一个运行时数据区,一个运行时数据区只有一个堆和一个方法区。 但是进程包含多个线程,他们是共享同一个堆空间的。 一
本地方法栈 本地方法栈
Java虚拟机栈用于管理 Java 方法的调用,而本地方法栈用于管理本地方法的调用。 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相的) 如果线程请求分配的栈容量超过本地方法栈允许的最
本地方法接口 本地方法接口
基本介绍 简单地讲,一个 Native Method 就是一个 Java 调用非 Java 代码的接口。一个 Native Method 是这样一个 Java 方法:该方法的实现由非 Java 语言实现,比如 c。这个特征并非 Java
虚拟机栈 虚拟机栈
简介虚拟机栈的出现背景 由于跨平台性的设计,Java 的指令都是根据栈来设计的。不同平台 CPU 架构不同,所以不能设计为基于寄存器的【如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的 CPU 架构进行优化,但是跨平台性大
PC寄存器 PC寄存器
介绍 JVM 中的程序计数寄存器(Program Counter Register),Register 的命名源于 CPU 的寄存器,寄存器存储指令相关的现场信息。CPU 只有把数据装载到寄存器才能够运行。 这里,并非是广义上所指的物理寄
运行时数据区概述及线程 运行时数据区概述及线程
前言 运行时数据区内存 内存是非常重要的系统资源,是硬盘和 CPU 的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM 内存布局规定了 Java 在运行过程中内存申请、分配、管理的策略,保证了 JVM 的高效稳定运行。 不同的 J
类加载子系统 类加载子系统
内存结构概述 假设我们想自己手写一个Java虚拟机的话,必须考虑哪些结构? 类加载器 执行引擎 类加载子系统类加载子系统作用 类加载器子系统负责从文件系统或者网络中加载 Class 文件,class 文件在文件开头有特定的文件标识。
2 / 3