Jvm
IT乾坤
IT乾坤,记录IT世界的一草一木
展开
-
Jvm内存溢出
堆内存溢出(outOfMemoryError:java heap space)在jvm规范中,堆中的内存是用来生成对象实例和数组的。如果细分,堆内存还可以分为年轻代和年老代,年轻代包括一个eden区和两个survivor区。当生成新对象时,内存的申请过程如下:a、jvm先尝试在eden区分配新建对象所需的内存;b、如果内存大小足够,申请结束,否则下一步;c、jvm启动youngGC,试图将...原创 2019-07-19 09:37:16 · 506 阅读 · 0 评论 -
jvm内存泄漏
内存泄漏和内存溢出的关系内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用。内存溢出:指程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况。从定义上可以看出内存泄露是内存溢出的一种诱因,但是不是唯一因素。可以使用Runtime.ge...原创 2019-07-19 10:02:39 · 4305 阅读 · 0 评论 -
Java面试之内存屏障
为什么要有内存屏障这个是为了解决因为cpu,高速缓存,主内存出现的时候,导致的可见性和重序性问题,什么问题呢,看下面的代码我们都知道计算机运算任务需要CPU和内存相互配合共同完成,其中CPU负责逻辑计算,内存负责数据存储。CPU要与内存进行交互,如读取运算数据、存储运算结果等。由于内存和CPU的计算速度有几个数量级的差距,为了提高CPU的利用率,现代处理器结构都加入了一层读写速度尽可能接近CP...原创 2019-07-24 09:40:52 · 6042 阅读 · 0 评论 -
Java里面的四种引用:强引用,软引用,弱引用,虚引用
在垃圾回收的时候,被释放的对象要考虑什么样的对象内存要被GC回收掉,那么怎么判断哪些对象要被回收掉呢,在java里面定义了四种引用对象,不同的引用对象在被GC扫描的时候,会有不同的处理方式,这里我们来看一下强引用强引用介绍强引用是用来描述必须存在和引用的对象,比如Object a=new Object(),只要强引用还存在,被引用的对象就永远不会被回收。强引用怎么被垃圾回收方法里面的局部...原创 2019-07-31 09:06:22 · 1885 阅读 · 7 评论