栈帧

JVM 

运行时栈帧结构 Java虚拟机以方法作为最基本的执行单元,“栈帧”(Stack Frame)则是用于支持虚拟机进行方法 调用和方法执行背后的数据结构,它也是虚拟机运行时数据区中的虚拟机栈(Virtual Machine

类加载器

JVM 

Java虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节 流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动 作的代码被称为“类加载器”(Class Loader)。

类加载的过程

JVM 

加载 1)通过一个类的全限定名来获取定义此类的二进制字节流。 2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 3)在内存中生成一个代表这个类

类加载的时机

JVM 

Java天生可以动态扩展的语言特性就是依赖运行期动 态加载和动态连接这个特点实现的。为Java应用提供了极高的扩展性和灵活性,例如,编写一个面向接口的应用程序,可以等到运行时再指定其 实际的实现类,用户可以通过Java预置的或自定义类加载器,让某个本地的应用程序在运行时从网络

字节码简介

JVM 

java在创建的初中是一次编写,可以在多平台运行,这与c++等有一些区别,因为c++这些在不同的平台代码可能不是通用的,java主要得益于java虚拟机,保证了平台无关性,这种保证是依靠字节码class文件实现的,虚拟机主要是识别class,将class解释成机器语言执行,是不是我们只要可以将代码转

调优案例分析

JVM 

大内存硬件上的程序部署策略 一个15万PV/日左右的在线文档类 型网站最近更换了硬件系统,服务器的硬件为四路志强处理器、16GB物理内存,操作系统为64位 CentOS 5.4,Resin作为Web服务器。整个服务器暂时没有部署别的应用

性能监控工具

JVM 

jps:虚拟机进程状况工具 可以列出正在运行的虚拟机进 程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一 ID(LVMID,Local Virtual Machine Ident

内存分配与回收策略

JVM 

对象优先在Eden分配 HotSpot虚拟机提供了-XX:+PrintGCDetails这个收集器日志参数,告诉虚拟机在发生垃圾收集行 为时打印内存回收日志,并且在进程退出的时候输出当前的内存各区域分配情况。

jvm参数

JVM 

虚拟机及垃圾收集器日志 阅读分析虚拟机和垃圾收集器的日志是处理Java虚拟机内存问题必备的基础技能,垃圾收集器日 志是一系列人为设定的规则,多少有点随开发者编码时的心情而定,没有任何的“业界标准”可言,换 句话说,每个收集器的日志格式都可能不一样。除此以外还有一个麻烦,在JDK 9以前,HotSpo

ZGC

JVM 

ZGC介绍 ZGC(The Z Garbage Collector)是JDK 11中推出的一款追求极致低延迟的实验性质的垃圾收集器,它曾经设计目标包括: 停顿时间不超过10ms; 停顿时间不会随着堆的大小,或者活跃对象的大小而增加; 支持8MB~4TB级别的堆,未来支持16TB。 基于最新的JDK1