性能分析神器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
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下 ...
分类:
编程语言 时间:
2018-05-05 21:48:03
阅读次数:
219
引用: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
今天将从以下5方面来系统的学习一下java动态代理的实现机制:
什么是代理
什么是静态代理
什么是动态代理
动态代理的实现机制
动态代理的使用场景
分类:
编程语言 时间:
2018-04-29 21:17:35
阅读次数:
181
今天将从以下4方面来系统的学习一下java的反射机制:
java反射是什么
java反射(Reflection)底层实现原理
java反射的简单演示
java反射的应用场景
分类:
编程语言 时间:
2018-04-29 19:59:02
阅读次数:
222