
JVM
文章平均质量分 62
_翚_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
内存泄漏的场景
各种提供了close方法的对象 数据库连接(dataSourse.getConnection()),网络连接(socket)和io连接 如果使用连接池,情况就不一样了,除了要显式地关闭连接,还必须显式地关闭Resultset Statement 对象(关闭其中一个,另外一个也会关闭),否则就会造成大量的Statement 对象无法释放,从而引起内存泄漏。这种情况下一般都会在try里面创的连接,在finally里面释放连接。 单例模式 单例对象在初始化后将在JVM的整个生命周期中存在(以静态变量.原创 2021-04-10 20:37:23 · 232 阅读 · 0 评论 -
浅析jvm基础工具
jps命令 jvm process status tool, 虚拟机进程状况工具 可以列出正在运行的虚拟机进程, 并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一id 用法 jps -l 显示主类名称. windows下有些进程的主类为什么不显示? jps -m 显示main函数参数 jps -v 显示虚拟机进程启动时的jvm参数, 每启动一个项目都会有一个虚拟机进程 jstat命令 jvm statistics monitoring tool, 虚拟机统计信息监视工具 显示进程的类加原创 2021-01-02 16:09:36 · 163 阅读 · 0 评论 -
jvm锁优化
自旋锁与自适应自旋 互斥同步对性能最大的影响是阻塞的实现 现在绝大多数的个人电脑和服务器都是多路(核)处理器系统,如果物理机器有一个以上的处理器或者处理器核心,能让两个或以上的线程同时并行执行,我们就可以让后面请求锁的那个线程“稍等一会”,但不放弃处理器的执行时间,看看持有锁的线程是否很快就会释放锁。为了让线程等待,我们只须让线程执行一个忙循环(自旋),这项技术就是所谓的自旋锁。 自旋次数的默认值是十次,用户也可以使用参数-XX:PreBlockSpin来自行更改。 自适应意味着自旋的时间不再是固定的了,原创 2020-10-25 14:33:49 · 255 阅读 · 0 评论 -
线程安全
定义 当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的。 java语言中的线程安全 不可变 只要一个不可变的对象被正确地构建出来(即没有发生this引用逃逸的情况),那其外部的可见状态永远都不会改变,永远都不会看到它在多个线程之中处于不一致的状态。 Java语言中,如果多线程共享的数据是一个基本数据类型,那么只要在定义时使用final关键字修饰原创 2020-10-03 21:51:13 · 220 阅读 · 0 评论 -
JVM内存结构的知识点
JVM内存分为线程共享的内存区域和线程私有的内存区域(工作内存)。 线程共享的内存区域包括方法区和堆。 方法区是存储类的元信息的地方。包括类信息、常量、静态变量、编译后的代码(字节码指令)等数据。1.7方法区的实现是永久代,1.8方法区的实现是元数据。方法区存在垃圾回收,但回收效率低。回收主要针对常量池的回收和类型的卸载。当方法区无法满足内存需求时,报OOM异常。 堆的唯一目的是存放对象实例...原创 2019-08-18 14:39:02 · 145 阅读 · 0 评论 -
浅析HotSpot虚拟机的垃圾收集器
垃圾收集器期望的目标 停顿时间, 停顿时间越短就适合需要与用户交互的程序 吞吐量, 主要适合在后台计算而不需要太多交互的任务 覆盖区, 在达到前面两个目标的情况下,尽量减少堆的内存空间 垃圾收集器组合方案 垃圾收集器分类 新生代垃圾收集器 Serial收集器 特点 采用复制算法, 单线程, “Stop The World” 应用场景 HotSpot在Client模式下默认的新生代收集器. 在用户的桌面应用场景中, 可用内存一般不大(几十M至一两百M), 可以在较短时间内完成垃圾收集(几十MS至原创 2020-05-10 20:38:29 · 228 阅读 · 0 评论