java虚拟机
小和尚的心愿
一个人旅行
展开
-
深入理解Java虚拟机学习笔记1-JVM运行时内存分布
一、为什么需要了解虚拟机的内存分布? Java程序员和C++、C程序员在内存管理领域是不一样的,对java程序员来说,java程序员不需要关注内存管理,就能编写代码,运行程序,内存完全托管给虚拟机,但是一旦出现内存泄露和溢出问题,如果不了解虚拟机内存分布,怎么使用内存,将无法快速准确的定位问题发生区域,并且了解jvm内存管理,也能写出更合理利用资源的代码。二、虚拟机运行时内存...原创 2018-10-19 16:53:01 · 176 阅读 · 0 评论 -
深入理解Java虚拟机学习笔记2-JVM中对象布局
一、对象的内存布局在Hotspot中,对象在内存中存储布局可以分为三块: 对象头(Header) 、实例数据(Instance Data)、对齐填充(Padding)二、对象头1、对象运行时数据: 哈希吗、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳;官方成为MarkWord,一种非固定数据结构,根据对象状态标志位复用存储空间存储对象数据的结构。2、类型指针:指...原创 2018-10-20 17:37:05 · 177 阅读 · 0 评论 -
深入理解Java虚拟机学习笔记3-线程安全和锁优化
并发处理是压榨计算机运算能力最有力的工具。1.线程安全当多个线程访问一个对象时,如果不用考虑这些线程运行时环境下调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获取正确的结果,那么这个对象是线程安全的。2.Java语言中的线程安全先决条件:多个线程之间存在共享数据访问这个前提。按照线程安全"安全程度"由强至弱来排序,可以将ja...原创 2018-10-23 10:46:44 · 205 阅读 · 0 评论