标签:JVM

JAVA

唯品会 vjmap 教程

herman 8年前 (2018-06-02) 6695浏览 0评论

vjmap 是唯品会开源出来的 vjtools 工具集的一个用来排查 java 内存泄漏的工具。与近日在 github 上开源,本文将详细介绍 vjmap 的相关用法。 概述 分代版的jmap(新生代,存活区,老生代),是排查内存缓慢...

JAVA

Java 自定义类加载器教程

herman 8年前 (2018-05-06) 4252浏览 0评论

除了在面试中遇到类的加载器的概率会高外,在实际的工作中很少接触。但是一个程序员想要成长为大牛就必须对一些 JVM 的底层设计有些了解。在此基础上我们阅读一些源码和框架会显得更轻松。 好了废话不多说,我们接着前面的文章,乘热打铁。来实现一个 ...

JAVA

Java的双亲委派模型

herman 8年前 (2018-05-06) 4100浏览 0评论

从 Java ClassLoader(ClassLoader)教程 这篇文章了解到 ClassLoader 的实现机制和原理后。我们再来看看 Java 中的双亲委派模型。 双亲委派模型的工作流程是:如果一个类加...

JAVA

Java ClassLoader(ClassLoader)教程

herman 8年前 (2018-05-06) 4508浏览 0评论

在上一篇文章中,我主要介绍了 Java 类的加载机制和 Java 类的生命周期。本文继续乘热打铁,讲解一下 Java 的 ClassLoader。 关于 ClassLoader ,相信大家用的不是很多,但是在面试中可能会...

JAVA

Java 类的生命周期

herman 8年前 (2018-05-06) 3787浏览 0评论

Java 之所以流行是因为 Java 总有从出不穷的新框架推出。Java 之所以被众多的开发者支持是因为它在众多的商业领域变现出出色的稳定性。这一切都和 Java 的设计有关,为了学习并立即 Java ,我们应该从它的类加载机制和类的生命周期学起...

JAVA

JAVA 动态代理原理和实现

herman 8年前 (2018-04-30) 3060浏览 0评论

在 Java 中动态代理和代理都很常见,几乎是所有主流框架都用到过的知识。在面试中也是经常被提到的话题,于是便总结了本文。 Java动态代理的基本原理为:被代理对象需要实现某个接口(这是前提),代理对象会拦截对被代理对象的方法调用,在其中可...

JAVA

JVM内存划分和JAVA虚拟机规范

herman 8年前 (2018-03-01) 2664浏览 0评论

有些使用其它语言开发的程序员,给JAVA程序员扣上了一个“不懂内存”的帽子,这着实有点让人难以接受。毕竟JAVA当中没有malloc和delete、没有析构函数、没有指针,刚开始接触JAVA的程序员们又怎么可能接触内存这一...

JAVA

JVM内存管理之GC(垃圾回收)策略与原理

herman 8年前 (2018-02-28) 4038浏览 0评论

内存管理一直是 JAVA 语言自豪与骄傲的资本,它让 JAVA 程序员基本上可以彻底忽略与内存管理相关的细节,只专注于业务逻辑。不过世界上不存在十全十美的好事,在带来了便利的同时,也因此引入了很多令人抓狂的内存溢出和泄露的问题。 在平时的工...

JAVA

JVM 垃圾回收器参数配置教程

herman 8年前 (2018-02-27) 3402浏览 0评论

一说到 JVM 很多人都认为是很高深的东西。但其实并没有什么神秘莫测,我们只需记住它的一些参数和配置手册即可。本文将详细介绍 JVM 的一些参数用法。 垃圾搜集器选择参数 UseSerialGC:开启此参数使用serial &am...

JAVA

Java JVM内存(栈、堆、常量池)分配

herman 9年前 (2017-04-25) 4093浏览 0评论

有人说java没有内存泄漏。这其实是不科学的。不是没有内存泄漏,而是你没有遇到而已! 栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。 Java内存分配与管理是Java的核心技术之一,今天我们再次深入J...

JAVA

java 多线程 JVM 锁优化

herman 9年前 (2017-04-18) 4528浏览 0评论

JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitorexit指令实现,而方法同步是使用另外一种方式实现的,细节在JVM规范里并没有详细说明...

JAVA

java多线程互斥和JVM锁机制

herman 9年前 (2016-12-18) 5866浏览 0评论

synchronized的重量级别的锁,就是在线程运行到该代码块的时候,让程序的运行级别从用户态切换到内核态,把所有的线程挂起,让cpu通过操作系统指令,去调度多线程之间,谁执行代码块,谁进入阻塞状态。这样会频繁出现程序运行状态的切换,线程的挂起...