向阳而生
对象实例化、内存布局与访问定位 对象实例化、内存布局与访问定位
对象的实例化大厂面试题 美团: 对象在JVM中是怎么存储的? 对象头信息里面有哪些东西? 蚂蚁金服: 二面:java对象头里有什么 对象创建的方式 new:最常见的方式、单例类中调用getInstance的静态类方法,XxxBuild
方法区 方法区
栈、堆、方法区的交互关系从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型场景就是数据库连接管理,以及会话管理。 栈、堆、方法区的交互关系 下面涉及了对象的访问定位 Person 类的 .cla
栈
基本介绍 栈的英文为(stack) 栈是一个先入后出(FILO-First In Last Out)的有序列表。 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称
(单向环形链表)约瑟夫环 (单向环形链表)约瑟夫环
应用实例 Joseph(约瑟夫、约瑟夫环)问题 设编号为1,2,… n的n个人围坐一圈,约定编号为k (<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依
堆
堆的核心概述堆与进程 堆针对一个 JVM 进程来说是唯一的。也就是一个进程只有一个 JVM 实例,一个 JVM 实例中就有一个运行时数据区,一个运行时数据区只有一个堆和一个方法区。 但是进程包含多个线程,他们是共享同一个堆空间的。 一
双向链表 双向链表
应用实例使用带head头的双向链表实现—水浒英雄排行榜 单向链表的缺点 单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找 单向链表不能自我删除,需要靠辅助节点,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,
本地方法栈 本地方法栈
Java虚拟机栈用于管理 Java 方法的调用,而本地方法栈用于管理本地方法的调用。 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相的) 如果线程请求分配的栈容量超过本地方法栈允许的最
本地方法接口 本地方法接口
基本介绍 简单地讲,一个 Native Method 就是一个 Java 调用非 Java 代码的接口。一个 Native Method 是这样一个 Java 方法:该方法的实现由非 Java 语言实现,比如 c。这个特征并非 Java
虚拟机栈 虚拟机栈
简介虚拟机栈的出现背景 由于跨平台性的设计,Java 的指令都是根据栈来设计的。不同平台 CPU 架构不同,所以不能设计为基于寄存器的【如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的 CPU 架构进行优化,但是跨平台性大
6 / 11