由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:
如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载...
分类:
其他好文 时间:
2014-10-21 21:43:46
阅读次数:
231
Java GC 介绍,Heap介绍,GC过程,回收机制。...
分类:
编程语言 时间:
2014-10-21 19:37:21
阅读次数:
213
JAVA会产生内存泄露吗?首先,答案是肯定的。Java虽然有垃圾回收器,但依然存在泄漏。
Java内存泄漏跟C/C++内存泄漏的概念不一样:C/C++的内存泄漏是指Malloc了一些资源,最后没有free掉,内存没有回收,这个是真正意义上的内存黑洞;而Java的泄漏指,Java对象的存在对程序已经没有意义,但是对象在程序周期内一直存在,这个可能会导致Java的内存泄漏。
总结原因,大概...
分类:
编程语言 时间:
2014-10-21 19:36:42
阅读次数:
254
Java作为一个跨平台的语言,它的实现要面对不同的底层硬件系统,设计一个中间层模型来屏蔽底层的硬件差异,给上层的开发者一个一致的使用接口。Java内存模型就是这样一个中间层的模型,它为程序员屏蔽了底层的硬件实现细节,支持大部分的主流硬件平台。要理解Java内存模型以及一些处理高并发的技术手段,理解一些基本的硬件知识是必须的。这篇会说一下跟并发编程相关的一些硬件知识。
一个基本的CPU执行...
分类:
其他好文 时间:
2014-10-21 13:53:02
阅读次数:
149
可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Swee...
分类:
编程语言 时间:
2014-10-20 20:54:06
阅读次数:
157
关于BerkeleyDB的有点和好处,列在下面
JE offers the following major features:
Large database support. JE databases efficiently scale from one to millions of records. The size of your JE databases are like...
分类:
数据库 时间:
2014-10-18 17:00:32
阅读次数:
347
当Eclipse运行处理大量的数据时,会报如下内存溢出的异常信息
java.lang.OutOfMemoryError: Java heap space
解决方法:
在Eclipse里选:Window->Preference->java->Installed JREs->Edit(选中jre) 或者 run->run configurations->Argments->Argment...
分类:
系统相关 时间:
2014-10-18 15:34:43
阅读次数:
161
重写hashCode的成员变量发生变化,Set中对象无法找到 1、使用对象的hashCode函数来初步确定内存位置,如果该位置没有存储对象,则将此对象存放于此 2、如果hash函数直接计算出的内存地址空间已经有对象存在,则会...
分类:
编程语言 时间:
2014-10-18 12:46:49
阅读次数:
164
Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句: Object ob = new Object(); 这样在程序....
分类:
其他好文 时间:
2014-10-17 21:40:08
阅读次数:
187
数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,c...
分类:
其他好文 时间:
2014-10-17 15:10:29
阅读次数:
198