面试中经常被问到,怎么调优jvm,于是查了很多资料学习了一下,做一下总结, 1、jvm调优主要是针对垃圾回收,先要熟悉jvm内存模型,主要有堆内存,栈内存,堆内存是java对象new之后存放的区域,栈内存是java方法存放临时变量的区域,方法执行完栈内存会自动释放,垃圾回收需要清理的是堆内存 a、堆 ...
分类:
其他好文 时间:
2020-04-22 16:17:12
阅读次数:
86
作者:永远在路上 https://blog.csdn.net/weixin_44104367/article/details/104481510 线程 线程的概念,百度是这样解释的: 线程(英语:Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程 ...
分类:
编程语言 时间:
2020-04-21 18:08:38
阅读次数:
78
一个变量指向new对象,就是引用,在java中有四种引用,分别是强软弱虚,常见的Object o = new Object(),就是强引用,垃圾回收的时候,强引用不会被回收。 公用类: public class M { @Override protected void finalize() thro ...
分类:
编程语言 时间:
2020-04-21 12:48:05
阅读次数:
56
前言 关于研究原理这件事,简单的事重复做,好好做,专研,那就是领域的专家,枯燥的技术,持之以恒的坚持。 现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋 ...
分类:
编程语言 时间:
2020-04-21 00:05:17
阅读次数:
102
2019-08-23 这个方法未经上线测试,记得以前测试时这个定时器在运行一段时间后就会停止,原因是IIS应用程序池的回收机制,IIS应用程序运行一段时间后如果没有数据的交互IIS会将资源回收,也就导致定时器停止运行。 1、不建议使用Timer,单独的使用Timer 效果是不理想的, Timer 使 ...
分类:
Web程序 时间:
2020-04-20 21:15:27
阅读次数:
119
前言 对于python来说,一切皆为对象,所有的变量赋值都遵循着对象引用机制。程序在运行的时候,需要在内存中开辟出一块空间,用于存放运行时产生的临时变量;计算完成后,再将结果输出到永久性存储器中。如果数据量过大,内存空间管理不善就很容易出现 OOM(out of memory),俗称爆内存,程序可能 ...
分类:
编程语言 时间:
2020-04-20 16:04:37
阅读次数:
71
分析1: 1 回收两原因 内核之所以要进行内存回收,主要原因有两个: 内核需要为任何时刻突发到来的内存申请提供足够的内存,以便cache的使用和其他相关内存的使用不至于让系统的剩余内存长期处于很少的状态。 当真的有大于空闲内存的申请到来的时候,会触发强制内存回收。 2 回收两目标 一种是针对zone ...
分类:
系统相关 时间:
2020-04-20 15:58:01
阅读次数:
83
不同的垃圾收集器代表不同的回收算法Serial收集器是针对新生代的收集器,采用的是Copying算法 Serial Old收集器是针对老年代的收集器,采用的是Mark-Compact算法,标记-压缩算法Parallel 并行收集器 Copying算法Parallel Old收集器 并行收集器 Mar ...
分类:
其他好文 时间:
2020-04-19 17:34:10
阅读次数:
77
"rm"命令:移除文件或者目录。 描述:"rm"移除指定的文件。默认情况下,它不能移除目录,但是当添加"-r"选项时,在指定目录之下的整个目录树都会被移除(及:递归删除整个目录)。 注意:Windows系统中被删除的文件、目录,是可以通过回收站恢复的;但是Linux系统中使用"rm"命令删除的文件、 ...
分类:
其他好文 时间:
2020-04-19 14:49:54
阅读次数:
330
JVM 的知识一直是 Java 面试中的热点,日常开发对这方面关注不多,但是面试中经常问,属于进阶的内容。如果你不甘一直做个初级程序员,这部分内容一定要啃一啃。哈哈,好像是在自说自话,自己对这方面还掌握得一般呢,所以更要学习一下,只有光头才能使我更强! ...
分类:
编程语言 时间:
2020-04-19 12:37:14
阅读次数:
88