jvm成长之路
这是自我学习jvm虚拟机中进行的学习总结,参考读书java虚拟机(第二版)作者:周志明,欢迎大家互相讨论学习。
青蛙与大鹅
只在攀登巅峰的人! 不会再中途的脚印中迷醉!
展开
-
什么是JDK,JRE, JVM虚拟机
声明:这是自我学习jvm虚拟机中进行的学习总结,参考读书java虚拟机(第二版)作者:周志明,欢迎大家互相讨论学习。 什么是jdk? jdk是整个java的核心,其中包括了java的运行环境jre,一堆java工具和java基础的类库api,以及jvm虚拟机。JDK是用于支持java程序开发的最小环境三维。所以不论什么java服务器其实都是内置了某个版本的jdk。什么是JRE?翻译 2017-12-19 16:56:29 · 1618 阅读 · 0 评论 -
jvm虚拟机运行时内存分析,堆,栈,方法区,程序计数器,本地栈,常量池
**JVM自动内存管理机制** java内存区域与内存溢出异常 概述 : 对于从事C/C++程序开发的开发人员来说,在内存管理领域他们是拥有最高权力的皇帝又是从事最基础工作的劳动人民,即拥有每一个对象的所有权,有担负这每一个对象生命的开始到结束的维护责任。对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏翻译 2017-12-19 17:18:25 · 4614 阅读 · 0 评论 -
JVM对象的创建流程
上章介绍完java虚拟机的运行时数据区之后,我们大致了解了java虚拟机的概况,java虚拟机运行时内存的原理和存放了一些什么,这章我们来了解一下java虚拟机中对象是如何创建的如何分配的对象。java是一门面向对象的编程语言,在java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(限于普通java对象,不包翻译 2017-12-21 19:32:37 · 1654 阅读 · 0 评论 -
java对象的内存布局和对象的访问定位
1 、对象在内存中存储的布局分为三块对象头存储对象自身的运行时数据:Mark Word(在32bit和64bit虚拟机上长度分别为32bit和64bit),包含如下信息:对象hashCode对象GC分代年龄锁状态标志(轻量级锁、重量级锁)线程持有的锁(轻量级锁、重量级锁)偏向锁相关:偏向锁、自旋锁、轻量级锁以及其他的一些锁优化策略是JDK1.6加入的,这些优化使得Synchronized的翻译 2017-12-29 17:52:15 · 839 阅读 · 0 评论 -
java垃圾回收器--如何回收?
概述 1 说起垃圾回收我们需要想到三个问题那些内存需要回收什么时候回收如何回收2 这篇博客就来阐述一下java对象中那些内存需要回收,如何判断对象是否死亡。 首先谈论到内存回收我们首先需要知道java虚拟机的运行时内存的各个部分,其中程序计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭。虚拟机栈中的栈帧随方法的进入和退出有条不紊的执行这进栈和出栈的操作。每一个栈帧...翻译 2018-02-24 17:14:02 · 759 阅读 · 0 评论 -
java,JVM垃圾收集算法
由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法还各不相同,因此本文不过多的讨论算法的具体实现,只是介绍垃圾收集算法的思想及其发展过程。1 标记清除算法 最基础的收集算法是“标记–清除”(Mark - Sweep)算法,如同他的名字一样,算法分为“标记”和“清除”两个阶段。首先标记处所有需要回收的对象,在标记完成后统一回收所有被标记的对象,之所以说他是最基...翻译 2018-02-26 14:35:47 · 797 阅读 · 0 评论