引自《深入理解Java 虚拟机》 前言 JVM 运行时数据分为几大部分 1. 程序计数器 2. Java 虚拟机栈 3. 本地方法栈 4. Java 堆 5. 方法区(永久代) 6. 运行时常量池 7. 直接内存 JVM 内存区域 Java 虚拟机在执行Java 程序的过程中会把它所管理的内存划分为 ...
分类:
其他好文 时间:
2018-05-20 00:15:24
阅读次数:
216
性能分析神器VisualVM 9602 VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans ...
分类:
编程语言 时间:
2018-05-06 12:18:41
阅读次数:
271
本文主要介绍如何在 Centos7 下编译 Openjdk8 源码,《深入理解java虚拟机》第二版网上好多 openjdk7 的帖子,编译 jdk8 和 7 还是有些差别的,比如大家经常提到的 make sanity 在 jdk8 源码里是没有的,下面我们一步步编译 openjdk8。 1 安装B ...
分类:
其他好文 时间:
2018-05-05 23:09:29
阅读次数:
1084
jps-java process status jps类似于linux的ps命令,用于查看进程. JPS 名称: jps - Java Virtual Machine Process Status Tool 命令用法: jps [options] [hostid] options:命令选项,用来对输 ...
分类:
编程语言 时间:
2018-05-05 21:48:34
阅读次数:
307
引用:https://www.cnblogs.com/yulei126/p/6777323.html JDK8-废弃永久代(PermGen)迎来元空间(Metaspace) 1.背景 2.为什么废弃永久代(PermGen) 3.深入理解元空间(Metaspace) 4.总结 正文分割线 一、背景 1 ...
分类:
编程语言 时间:
2018-05-05 11:53:09
阅读次数:
237
1.对象的创建过程 由于类的加载是一个很复杂的过程,所以这里暂时略过,后面会详细讲解,默认为是已加载过的类.着重强调对象的创建过程. 注意: 最后一步的init方法是代码块和构造方法. 以上是总图,下面分步骤详细讲解 A: 虚拟机为对象分配内存方式 1. 指针碰撞: 堆内存规整时,这时就可以把其看做 ...
分类:
编程语言 时间:
2018-05-04 01:37:37
阅读次数:
201
java虚拟机栈的理解 虚拟机栈就是我们所熟知的栈内存,栈内存属于线程独有的.而在栈内存中的局部变量表中存储的引用类型只是存储对象的内存地址.对象的创建在堆内存中,即对象在线程共享区中. 局部变量表: 局部变量表的内存空间在编译时期完成分配,用于存放编译期间可知的各种基本数据类型,引用类型以及ret ...
分类:
编程语言 时间:
2018-05-03 00:57:51
阅读次数:
172
今天学习《深入理解Java虚拟机:JVM高级特性与最佳实践》一书,并动手在Linux系统上编译OpenJDK 7,初次搞不太顺利,特记录下编译操作细节。 一、前期准备 约定:工具默认安装目录是/usr/local/,若有源码,则源码存放在/usr/local/src/目录下。 1、OpenJDK 下 ...
分类:
其他好文 时间:
2018-05-01 10:42:19
阅读次数:
399
对《深入理解Java虚拟机》中关于Java对象回收流程的总结。 ...
分类:
编程语言 时间:
2018-04-26 12:01:52
阅读次数:
183
1、深入理解Java虚拟机:JVM高级特性与最佳实践 2、java多线程核心技术 3、Effective Java 4 , 待补充 5、Spring技术内幕:深入解析Spring架构与设计原理 6、Java并发编程的艺术 7、Java并发编程实战 8、型网站系统与Java中间件实践 9、分布式服务框 ...
分类:
其他好文 时间:
2018-04-26 11:56:43
阅读次数:
158