前言:相比C++,java做的一大改进是将复杂的内存管理抽离出来交给jvm去处理,让码农不再时刻盯着内存泄漏的问题,可以更专注于业务逻辑的开发。 java的GC机制是和其内存模型相关联的,而GC的核心内存区域是内存中的堆区。 java堆区按对象的存活时间被分为了年轻代(eden区+s0区+s1区)和 ...
分类:
编程语言 时间:
2019-07-23 13:09:36
阅读次数:
103
前言 平时经常听到大牛说到的gc,就是垃圾回收器,全称Garbage Collection。 早期版本,准确地说是5.3之前(不包括5.3)的垃圾回收机制,是没有专门的垃圾回收器的。只是简单的判断了一下变量的zval的refcount是否为0,是的话就释放否则不释放直至进程结束。 乍一看确实没毛病啊 ...
分类:
Web程序 时间:
2019-07-23 12:50:59
阅读次数:
167
闭包主要是为了解决局部变量无法长久的保存,而全局变量可能造成变量污染 垃圾回收机制 闭包的产生是在嵌套函数定义执行完时就产生了(不是在调用的时候) 闭包的死亡f=null 小闭包: (function(){})() ...
分类:
其他好文 时间:
2019-07-22 23:55:04
阅读次数:
197
获取设置的参数str的值: 常用的-X参数有以下这些: 手动调用GC执行垃圾回收操作:(-XX:+DisableExplicitGC 手动调用将会失效) 查看tomcat的进程ID: 或者: ...
分类:
其他好文 时间:
2019-07-21 16:40:34
阅读次数:
97
Parallel Scavenge(Paraller):Parallel Scavenge和ParNew关注的点不一样:ParNew关注的是尽可能缩短暂停的时间,Parallel Scavenge关注的是吞吐量吞吐量 = 运行用户代码时间/(运行用户代码时间+垃圾收集时间)举个例子:虚拟机运行100 ...
分类:
其他好文 时间:
2019-07-21 11:56:43
阅读次数:
75
System.Windows.Forms.Timer、System.Timers.Timer、System.Threading.Timer的 区别和用法System.Windows.Forms.Timer执行的时候,如果你在过程中间加一个sleep整个的界面就死掉了,但是另外两个没有这个情况,Sys ...
变量的生命周期: js中有两种变量,全局变量和局部变量,局部变量在函数运行完自动删除,而全局变量在浏览器关闭时删除。 什么是垃圾? 没有被引用的对象。 什么叫内存泄漏? 当一块内存已经不需要了,但是它还存在,这种东西多了就会造成内存泄漏。 什么情况会引起内存泄漏? 1、全局变量 解释:局部变量在函数 ...
分类:
其他好文 时间:
2019-07-19 20:37:42
阅读次数:
84
?做JAVA也有接近2年的时间了,公司的leader说,做JAVA,三年是个坎,如果过了三年你还没有去研究JVM的话,那么你这个程序员只能是板砖的工具了。恰逢辞职,来个JVM的解析可好? JVM是Java Virtual Machine(Java虚拟机)的缩写,也就是指的JVM虚拟机,属于是一种虚构 ...
分类:
编程语言 时间:
2019-07-17 09:32:51
阅读次数:
154
资料: 一、什么是OOM OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个error 二、为什么会OOM、出现的原因是什么 为什么会没有内存了呢?原因不外乎有两点: ① 分配的少了: ...
分类:
编程语言 时间:
2019-07-12 12:55:12
阅读次数:
149
强引用 Java 默认的就是强引用 只要有强引用存在,对象就不会被回收 软引用 如果内存足够就不进行回收,内存不够的时候会进行回收 比较适合做大对象的缓存 弱引用 如果垃圾回收发生,在线程扫描的时候,如果一个对象只有弱引用存在,那么就会被回收 如果这个对象是偶尔的使用,并且希望在使用时随时就能获取到 ...
分类:
编程语言 时间:
2019-07-12 12:37:16
阅读次数:
103