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