自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

转载 Java 内存模型

线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。_本地内存是JMM(Java内存模型)的一个抽象概念,并不真实存在。它涵盖了缓存,写 缓冲区,寄存器以及其 他的硬件和编译器优化。Java内存模型的抽象示意图如下图:对于一个简单的 i++ 操作,结

2016-11-28 14:16:37 270

原创 JVM:编译加载机制与自定义类加载器

编译机制编译主要是把.java文件转换为.class文件。其中转换后的.class文件就包含了元数据,方法信息等一些信息。比如说元数据就包含了java文件中声明的常量,也就是我们所说的常量池。类加载机制jvm是通过一个称为ClassLoader的东西来加载clss文件,每当jvm启动的时候,就会产生三个ClassLoader,他们分别是Bootstrap loader,

2016-11-25 14:13:27 373

转载 Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)

在什么时候:首先需要知道,GC又分为minor GC 和 Full GC(major GC)。Java堆内存分为新生代和老年代,新生代中又分为1个eden区和两个Survior区域。一般情况下,新创建的对象都会被分配到eden区,这些对象经过一个minor gc后仍然存活将会被移动到Survior区域中,对象在Survior中没熬过一个Minor GC,年龄就会增加一岁,当

2016-11-25 11:17:59 8147

转载 Java JVM:内存溢出(栈溢出,堆溢出,持久代溢出以及 nable to create native thread),

Hotspot jvm的实现中,将堆内存分为了两部:新生代,老年代。在堆内存之外,还有永久代,其中永久代实现了规范中规定的方法区。栈溢出:出现此种情况是因为方法运行的时候,栈的深度超过了虚拟机容许的最大深度所致。死递归:import java.util.*; import java.lang.*; public class OOMTest{ pub

2016-11-24 15:03:54 1338

转载 Java JVM:内存结构与参数设置

如图,jvm内存区域分为 pc寄存器,jvm方法栈,本地方法栈,jvm方法区,jvm方法堆。pc寄存器:存放下一条指令在方法中的偏移量。也可以看作是线程所执行的字节码的行号指示器,字节码解释器的工作就是通过改变这个计数器的值来选取下一条需要执行的指令。jvm虚拟机栈: jvm虚拟机栈主要由栈帧来组成。栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,栈帧存储

2016-11-24 09:38:05 566

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除