• 目录 一 内存溢出原因 二 内存溢出实例 1 堆溢出 2 虚拟机栈和本地方法栈溢出 3 方法区和运行时常量池溢出 4 本机直接内存溢出 三 内存溢出排查 内存溢出 是指应用系统中存在无法回收的内存或使用的内存过多 最终使得程序运行要用到的内
  • 文章目录 1 加载 2 链接 2 1 验证 2 2 准备 2 3 解析 3 初始化 3 1 类初始化练习 3 2 懒汉式单例练习 4 类加载器 4 1 启动类加载器 4 2 扩展类加载器 4 3 双亲委派模式 4 4 线程上下文类加载器 4
  • 1 定义 静态变量也叫做类变量 类属性 由static修饰的变量称为静态变量 其实质上就是一个全局变量 如果某个内容是被所有对象所共享 那么该内容就应该用静态修饰 没有被静态修饰的内容 其实是属于对象的特殊描述 2 访问语法 类名 静态方法
  • Tomcat通过自定义的类加载器WebAppClassLoader打破了双亲委托机制 目的就是为了优化加载Web应用目录下的类 Tomcat 作为 Servlet 容器 它负责加载我们Servlet 类 此外它还负责加载 Servlet 所
  • 定义与本质 类加载器用来把类文件加载到JVM内存中 从JDK1 2开始 类加载过程采用双亲委派模型 保证Java平台安全 父类委托的定义 一个类加载器在接到加载类请求的时候 首先不会去加载这个类 而是把这个类加载请求委托给父类去完成 近依次
  • 堆的虚拟地址是连续的 是brk来分配 brk是一个指针指向堆顶的指针 并且是可以复用的 但是只有在堆顶空闲128k时 才收缩 也就是说 为了减少page fault 可重用 开销小的特点 但是会内存碎片 但是分配内存 gt 128k时 就是
  • 原文链接 GitHub项目地址 https github com Snowstorm0 learn sleep Gitee项目地址 https gitee com Snowstorm0 learn sleep Java 在运行 for 循环
  • The JMX MBean for HikariCP exposes Idle Connection count Active Connections in use Total Connections The number of threa
  • 一 Java内存分配 1 Java有几种存储区域 寄存器 在CPU内部 开发人员不能通过代码来控制寄存器的分配 由编译器来管理 栈 在Windows下 栈是向低地址扩展的数据结构 是一块连续的内存的区域 即栈顶的地址和栈的最大容量是系统预先
  • 统计 Java 文件中方法行数 最近接到一个需求 有一个安全扫描 可以扫描到是那个Java文件有问题 但是不知道是该文件下哪个方法有问题 所以想根据行号找到对应方法进行统计 本文将介绍如何使用 Python javalang 库实现这个功能
  • 目录 一 锁升级基础 1 偏向锁 2 轻量级锁 自旋锁 3 重量级锁 二 为什么要有锁升级过程 1 减少无竞争情况下的同步操作开销 2 尽量避免线程切换的开销 3 降低内存消耗 4 提高系统吞吐量 三 锁升级具体过程 一 锁升级基础 1 偏
  • 上篇文章说了ZGC是jdk11加入的 他是未来jvm垃圾收集器的奠定者 满足TB级别内存处理 STW时间保持在10ms以下 Jmap 我们可以先通过jmap histo 进程ip 来查看 但是这样看不太清晰 我们可以用这行命令生成一个文件
  • 一 JVM内存区域划分 1 程序计数器 线程私有 类似于eclipse中断点程序 行号指示器 记录了程序下一步需要执行的字节码指令 分支 循环等分支 线程私有 每个线程有一个程序计数器 程序计数器是为了多线程情况下 线程执行切换后 处理器回
  • 现象 通过监控系统平台告警感知到 某应用某IP在某段时间内出现FullGC FullGC的过程伴随着STW 如果过于频繁 将会导致用户体验极具下降 FullGC的出现经常伴随老年代空间被打满的情况 可以通过监控视图来观测到 当前统一使用CM
  • JAVA 内存模型 JMM 内存模型概念 在特定的操作协议下 对特定的内存或高速缓存进行读写访问的过程抽象 JMM 主要就是因为CPU的多核多级缓存 为了优化代码而进行的指令重排序 从而处理器会对代码乱序的问题 保证最终的并发安全 JMM是
  • 1 问 说说JVM的底层结构 从左图可知 JVM主要包括四个部分 1 类加载器 ClassLoader 在JVM启动时或者在类运行时将需要的class加载到JVM中 右图表示了从java源文件到JVM的整个过程 可配合理解 关于类的加载机制
  • 我们的Java应用因频繁FULL GC导致性能降低很多 经过多人的定位也没有结论 于是我自主请命 经过一天的研究终于搞定了 现把经验与大家共享 相关的gc日志如下 4 758 Full GC PSYoungGen 464K gt 0K 71
  • Java System arraycopy is a native static method to copy elements from the source array to the destination array Java Sys
  • 如果Eden空间占满了 会触发 minor GC Minor GC后仍然存活的对象会被复制到S0中去 这样Eden就被清空可以分配给新的对象 又触发了一次 Minor GC S0和Eden中存活的对象被复制到S1中 并且S0和Eden被清空