- 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧
垃圾收集算法
如何判断一个对象是不是垃圾
引用计数法
可达性分析算法
哪些对象可以作为GC Roots
Java中的对象引用分类
判定对象是否可真正回收的细节
垃圾收集算法
分代收集理论(重要)
标记-清除算法
标记-复制算法(复制算法,不适用老年代)
优化的半区复制分代策略(Appel式回收)
HotSpot对Appel式回……继续阅读 »
JVM 类加载器:
1.jvm虚拟机自带的加载器。
1).根类加载器(Bootstrap),对应系统属性sun.boot.class.path,由C++实现;
2).扩展类加载器(Extension), 对应系统属性java.ext.dirs,由java语言提供的类加载器,是ClassLoader类的子类;
3).系统(应用)类加载器(s……继续阅读 »
JVM架构组成主要包括以下四个部分: ClassLoader(类加载器):根据特定的格式,加载字节码.class文件到内存。 ExecutionEngine(解释器):对命令(字节码)进行解析。 NativeInterface(本地接口):结合不同语言的原生库为java所有,调用其他语言的库。 RuntimeDataArea:java内存空间结构模型。
由此……继续阅读 »
jvisualVm是jdk自带的可视化监控工具,功能很强大,可安装各种扩展插件。本篇不打算讲解如果使用详细的功能,只讲在windows环境怎么监控本地和远端(一般是无界面的linux系统)的java进程。
1、在远程机器上添加权限策略文件
在服务器{JAVA_HOME}/bin目录建立文件:jstatd.al……继续阅读 »
……继续阅读 »
https://blog.csdn.net/likaiwalkman/article/details/50635114
cglib被hibernate用来动态生成po的字节码。CGLIB的底层是java字节码操作框架ASM。
今天简单看下cglib的用法。cglib的Enhancer说起来神奇,用起来一页纸不到就讲完了。它的原理就是用Enhancer生成……继续阅读 »
堆外内存一直是Java业务开发人员难以企及的隐藏领域,究竟他是干什么的,以及如何更好的使用呢?那就请跟着我进入这个世界吧。
一、什么是堆外内存
1、堆内内存(on-heap memory)回顾堆外内存和堆内内存是相对的二个概念,其中堆内内存是我们平常工作中接触比较多的,我们在jvm参数中只要使用-Xms,-Xmx等参数就可以设置堆的大小和最大值,理解jv……继续阅读 »
先说一下栈和堆栈,我们听老一辈的程序员一般都会说堆栈,其实栈就是堆栈的意思,连着叫只是由于历史的原因。博主04年学数据结构的时候,书上都是说的堆栈,FILO(先进后出),也经常拿堆栈和队列,FIFO(先进先出)这两种数据结构拿来作比较。
系统中的堆、栈 和 数据结构堆、栈
系统中的堆、栈和数据结构堆、栈不是一个概念。可以说系统中的堆、栈是真实的内存物理区,数……继续阅读 »
文章目录
1. 类加载机制
2. 类加载的过程
2.1 装载(Load)
2.2 链接(Link)
2.3 初始化
3. clinit方法
4. 类加载器
5. 双亲委派模型
1. 类加载机制
所谓类加载机制就是JVM虚拟机把Class文件加载到内存,并对数据进行校验,转换解析和初始化,形成虚拟机可以直接使用的Java类型,即Java.……继续阅读 »
前言
在遇到实际性能问题时,除了关注系统性能指标。还要结合应用程序的系统的日志、堆栈信息、GClog、threaddump等数据进行问题分析和定位。关于性能指标分析可以参考前一篇JVM性能调优实践——性能指标分析。
JVM的调优和故障处理可以使用JDK的几个常用命令工具。因为本文是基于Docker容器内部的Springboot服务。需要调整一下docker……继续阅读 »