昨天写的差不多了,忘记发,结果不小心手抖把网页给关了......博客园的用户体验还是差了些呀...... 进入正题,OOM,即out of memory,也就是内存耗尽,内存用光的意思,即内存溢出,什么时候会造成OOM报错呢 当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回 ...
分类:
其他好文 时间:
2017-07-05 13:25:33
阅读次数:
151
protected Object clone()创建并返回此对象的一个副本。 boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。 protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 Cl ...
分类:
其他好文 时间:
2017-07-02 15:10:40
阅读次数:
137
1:小知识 1):new 作用是创建对象,凡是new 出来的对象,全部都放在堆内存中(基本数据类型存储在栈内存中,对象保存在堆内存中)。 2):可以通过将一个数组赋值给另一个数组,这时,被赋值的长度不会发生改变:代码如下 3):GC 指代的是垃圾回收器,当内存中有一个对象没有任何一个引用指向时,这个 ...
分类:
编程语言 时间:
2017-06-29 22:34:22
阅读次数:
217
答案是肯定的,但不能拿这一句回答面试官的问题。分析:JAVA是支持垃圾回收机制的,在这样的一个背景下,内存泄露又被称为“无意识的对象保持”。如果一个对象引用被无意识地保留下来,那么垃圾回收器不仅不会处理这个对象,而且也不处理被这个对象引用的其它对象。“内存泄露”就是内存中某些内存不可被回收。 举个例 ...
分类:
编程语言 时间:
2017-06-29 10:09:28
阅读次数:
202
JVM的垃圾回收算法有三种: 1.标记-清除(mark-sweep):啥都不说,直接上图 2.标记-整理(mark-compact) 3.复制(copy) 分代收集算法 目前的垃圾回收都采用分代收集算法.也就衍生了很多垃圾收集器 “分代收集”(Generational Collection)算法,把 ...
分类:
编程语言 时间:
2017-06-28 00:26:10
阅读次数:
396
人们似乎觉得编写垃圾回收机制是非常难的,是一种仅仅有少数智者和Hans Boehm(et al)才干理解的高深魔法。我觉得编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc例子难度是相当的。 在開始之前有一些重要的事情须要说明一下:第一。我们所写的代码是基于Linux Kernel ...
分类:
编程语言 时间:
2017-06-24 13:15:28
阅读次数:
242
1 head和stack有什么区别 栈(stack) 和堆(head)都是在内存中存放数据的地方,二者的区别在于: 1 栈存放基本类型变量和对象应用,当超过作用域后释放,堆存放new出来额对象和数组; 2 堆可以动态的分配内存的大小,神存期也不必先告诉编译器;java的垃圾回收器会自动回收这些没有用 ...
分类:
编程语言 时间:
2017-06-22 23:56:21
阅读次数:
333
1.内存基础知识 每个进程都有其自己单独的虚拟地址空间。 同一台计算机上的所有进程共享相同的物理内存,如果有页文件,则也共享页文件。 默认情况下,32 位计算机上的每个进程都具有 2 GB 的用户模式虚拟地址空间。 作为一名应用程序开发人员,您只能使用虚拟地址空间,请勿直接操控物理内存。 垃圾回收器 ...
分类:
Web程序 时间:
2017-06-21 09:45:35
阅读次数:
192
在Java中,有六个不同的地方可以存储数据: 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。) 3. 堆:存放所有new ...
分类:
编程语言 时间:
2017-06-20 14:50:58
阅读次数:
115
转自:http://www.cnblogs.com/gudi/p/6403953.html 1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:Object o=new Object(); // 强引用 当内存空间不足,Ja... ...
分类:
编程语言 时间:
2017-06-15 20:37:27
阅读次数:
239