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