最近在读《深入理解Java虚拟机》,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存? 在网上搜到了一篇博客讲的非常好:http://yueyemaitian.iteye.com/blog/2033046,里面提供的这个类也非常实
分类:
编程语言 时间:
2016-02-25 11:33:47
阅读次数:
224
注:本文主要参考自《深入理解java虚拟机(第二版)》 在查看本文前,先要了解JVM内存结构,见 第一章 JVM内存结构 1、类加载流程 把描述类的数据从xxx.class文件加载到JVM内存 对这些数据进行校验、准备、解析(这三个过程总称为"链接") 对这些数据进行初始化,最终形成可被JVM直接使
分类:
其他好文 时间:
2016-02-18 22:55:49
阅读次数:
287
根据《深入理解java虚拟机》学习归纳整理学习笔记 程序计数器 用途:当前线程的字节码文件的行号指示器.(当前机场负责控制飞机降落的空管员;当前线程表示当前机场, 所执行的字节码等同于被等待允许降落的飞机,行号指示器好比下达允许降落指令的空管员) 线程私有(每个机场都有属于自己的空管员,不同机场的空
分类:
编程语言 时间:
2016-02-18 17:51:43
阅读次数:
201
1、Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 2、运行时数据区域划分 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个区域,这些区域都有各自的用途,创建和销毁时间,有的区域随着虚拟机进程的启动而存在,有的区域
分类:
编程语言 时间:
2016-02-15 16:16:17
阅读次数:
163
注意:该篇博客主要记录自《深入理解java虚拟机(第二版)》 说明:关于命令行的JVM性能监控与故障处理工具见《第七章 JVM性能监控与故障处理工具(1)》 1、图像化的故障处理工具 Jconsole visualVM 2、Jconsole 进入"E:\Java\jdk1.6\bin",双击"jco
分类:
其他好文 时间:
2016-02-08 17:20:07
阅读次数:
145
注意:本文主要参考自《深入理解Java虚拟机(第二版)》 说明:查看本文之前,推荐先知道JVM内存结构,见《第一章 JVM内存结构》 1、内存回收的区域 堆:这是GC的主要区域 方法区:回收两样东西 无用的类 废弃的常量 栈和PC寄存器是线程私有区域,不发生GC 2、怎样判断对象是否存活 垃圾回收:
分类:
编程语言 时间:
2016-02-05 18:54:38
阅读次数:
146
注意:本篇博客,主要参考自《深入理解Java虚拟机(第二版)》 1、对象在内存中存储的布局分为三块 对象头 存储对象自身的运行时数据:Mark Word(在32bit和64bit虚拟机上长度分别为32bit和64bit),包含如下信息: 对象hashCode 对象GC分代年龄 锁状态标志(轻量级锁、
分类:
编程语言 时间:
2016-02-03 22:30:08
阅读次数:
165
文章主要是阅读《深入理解java虚拟机:JVM高级特性与最佳实践》第二章:Java内存区域与内存溢出异常的一些笔记以及概括。好了開始。假设有什么错误或者遗漏,欢迎指出。一、概述先上一张图这张图主要列出了Java虚拟机管理的内存的几个区域。常有人把Java内存区分为堆内存(Heap)和栈内存(Stac...
分类:
编程语言 时间:
2016-01-23 21:03:21
阅读次数:
211
最近在学习《深入理解java虚拟机 第二版》这本书。书中第一部分建议大家自己编译OpenJDK。抱着学习态度也来编译个玩一玩。下面进入正题。1.编译环境介绍操作系统CentOS Linux release 7.1.1503 (Core)Linux内核版本3.10.0-229.el7.x86_64gc...
分类:
其他好文 时间:
2016-01-10 17:05:13
阅读次数:
377
今天闲来无事来,看一下Java中的内存模型和垃圾回收机制的原理。关于这个方面的知识,网上已经有非常多现成的资料能够供我们參考,可是知识还是比較杂的,在这部分知识点中有一本书不得不推荐:《深入理解Java虚拟机》,如今已经是第二版了。这本书就从头開始详细介绍了Java整个虚拟机的模型以及Java的类文...
分类:
编程语言 时间:
2016-01-01 14:45:31
阅读次数:
229