WeakHashMap使用弱引用来作为Map的Key,利用虚拟机的垃圾回收机制能自动释放Map中没有被使用的条目。但是WeakHashMap释放条目是有条件的:首先条目的Key在系统中没有强引用指向;另外,条目的释放是在垃圾回收之后第一次访问这个WeakHashMap时完成的。
而当我们想...
分类:
其他好文 时间:
2014-05-19 21:13:21
阅读次数:
314
Java虚拟机内存模型及垃圾回收监控调优
如果你想理解Java垃圾回收如果工作,那么理解JVM的内存模型就显的非常重要。今天我们就来看看JVM内存的各不同部分及如果监控和实现垃圾回收调优。JVM内存模型
正如你上图所看到的,JVM内存可以划分为不同的部分,广义上,JVM堆内存可以划分为两部分:年轻....
分类:
编程语言 时间:
2014-05-19 21:09:31
阅读次数:
337
枚举部分 enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。
通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方便地访问它。 但是,还可以将枚举嵌套在类或结构中。默认情况下,第一个枚举数的值为
0,后面每个枚举数的值依次递增 1。 ...
分类:
其他好文 时间:
2014-05-19 06:53:15
阅读次数:
519
第一种方法--及时回收bitmap内存:一般而言,回收bitmap内存可以用到以下代码if(bitmap!=null&&!bitmap.isRecycled()){bitmap.recycle();bitmap=null;}System.gc();bitmap.recycle()方法用于回收该bit...
分类:
移动开发 时间:
2014-05-18 21:26:21
阅读次数:
519
当我们对于内存进行手动管理的时候,会出现两种错误:一种是野指针错误,一种则为内存泄露.这两点也是我们去管理内存时最终要解决的问题.
内存泄漏是指:不在使用的对象,一直保留在内存中未被销毁,一直占有着内存,耗费内存资源直至程序结束.
野指针则是指:当一个指针指向一个对象时,此对象已经被系统回收...
分类:
其他好文 时间:
2014-05-17 21:10:52
阅读次数:
1122
在面向对象编程中,对象创建和销毁是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是对一些很耗资源的对象创建和销毁。如何利用已有对象来...
分类:
编程语言 时间:
2014-05-16 07:53:24
阅读次数:
336
java.lang.OutOfMemoryError异常解决方法原因:常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;3.代码中存在死循环或循环产生过多重复的对象实体;4.使用的第三方软件中的BUG;5.启...
分类:
编程语言 时间:
2014-05-16 07:51:33
阅读次数:
315
在单个程序中我们经常用多线程来处理不同的工作,尤其是有的工作需要等,那么我们会新建一个线程去等然后执行某些操作,当做完事后线程退出被回收。当一个程序运行时,就会有一个进程被系统所创建,同时也会有一个线程运行,这个线程就是主线程main,在主线程中所创建的新的线程都是子线程,子线程通常都是做一些辅助的事。python中提供了thread和threading两个模块来支持多线程。
p...
分类:
编程语言 时间:
2014-05-15 23:20:00
阅读次数:
471
在学C++时,由于时间比较急。对构造函数和析构函数这部分当时了解的比较浅显,当时只知道构造函数是
用来为对象分配存储空间,进行必要的初始化。析构函数对应构造函数,当撤销类对象时,构造函数回收存储
空间。
C#再次学到这部分的内容,因为当时C++了解过了,现在学起来有种似曾相识的感觉,所以学起来就会带
劲儿,也深入了一些。...
分类:
其他好文 时间:
2014-05-15 12:09:30
阅读次数:
253
一、Java内存组成组成图堆(Heap)运行时数据区域,所有类实例和数组的内存均从此处分配。Java虚拟机启动时创建。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。组成
组成 详解Young Generation即图中的Eden + From Space + To Space1.Eden存放新...
分类:
编程语言 时间:
2014-05-15 02:07:43
阅读次数:
320