(转载,出处丢失,请原作者原谅,如有意见,私信我我会尽快删除本文)JAVA1.GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象...
分类:
移动开发 时间:
2015-03-05 12:10:07
阅读次数:
345
在前两篇文章当中,我们主要学习了Android内存方面的相关知识,包括如何合理地使用内存,以及当发生内存泄露时如何定位出问题的原因。那么关于内存的知识就讨论到这里,今天开始我们将学习一些性能编码优化的技巧。
避免创建不必要的对象
创建对象从来都不应该是一件随意的事情,因为创建一个对象就意味着垃圾回收器需要回收一个对象,而这两步操作都是需要消耗时间的。虽说创建一个对象的代价确实非常小,并且Android 2.3版本当中又增加了并发垃圾回收器机制,这让GC操作时的停顿时间也变得难以察觉,但是这些理由都不足以让我...
分类:
移动开发 时间:
2015-03-05 10:55:11
阅读次数:
212
插件下载:http://visualvm.java.net/pluginscenters.html找对应版本下载,我目前用过的插件为Visual GC,下载下来的插件应该是.nbm格式的。打开jvisualvm->工具->插件->已下载->添加插件...完了之后在tomcat启动脚本里添加 -Dco...
分类:
其他好文 时间:
2015-03-05 10:44:36
阅读次数:
900
Android用LruCache来取代原来强引用和软引用实现内存缓存,因为据说自2.3以后Android将更频繁的调用GC,导致软引用缓存的数据极易被释放。LruCache使用一个LinkedHashMap简单的实现内存的缓存,没有软引用,都是强引用。如果添加的数据大于设置的最大值,就删除最先缓存的...
分类:
系统相关 时间:
2015-03-04 18:45:40
阅读次数:
179
原因:
目前有两种猜测,第一种就是类加载容易,但是类卸载就不那么容易了,第二种猜测就是类缓存机制,从classloader的运行过程可以分析到有个过程是缓存常用类的,感觉这个过程没法释放,因为他会认为你以后会一直用。
测试内存泄露代码:
可以用DDMS测试下,当你调用GC的时候byte是可以回收的,但是classloader就没法回收了,也许你认为是因为调用了activity的classlo...
分类:
其他好文 时间:
2015-03-04 11:14:09
阅读次数:
162
题目链接:点击打开链接
题意:
给定长度为n的一个字符串s。
构造长度也为n的字符串t。使得p(s,t)值最大,问有多少个不同的t
h(s,t) = 对应位置上字母相同的个数
ρ("AGC",?"CGT")?=?
h("AGC",?"CGT")?+?h("AGC",?"GTC")?+?h("AGC",?"TCG")?+?
h("GCA",?"CGT")?+?h("GC...
分类:
其他好文 时间:
2015-03-03 23:39:30
阅读次数:
228
知乎问题Java 等语言的 GC 为什么不实时释放内存?下面是RednaxelaFX的回答:1.最基本的纯引用计数方式的自动内存管理可以做到实时释放死对象,但却无法处理存在循环引用的对象图的释放。这个问题一定程度上可以通过引入弱引用的概念来解决,但通用的能处理带循环引用对象图的引用计数都是有别的管理...
分类:
编程语言 时间:
2015-03-03 16:29:02
阅读次数:
199
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些类如交易所的核...
分类:
编程语言 时间:
2015-03-02 16:43:02
阅读次数:
195
第一个就是很多人用.Net写程序,会谈到托管这个概念。那么.Net所指的资源托管到底是什么意思,是相对于所有资源,还是只限于某一方面资源?很多人对此不是很了解,其实.Net所指的托管只是针对内存这一个方面,并不是对于所有的资源;因此对于Stream,数据库的连接,GDI+的相关对象,还有Com对象等...
【思路】:http://blog.csdn.net/iamskying/article/details/4738838
求解思路:
现在分析一个问题,假设将十位数为a,个位数为b的一个整数表示为ab,则推导得
ab*ab = (a*10+b)*(a*10+b) = 100*a*a+10*2*a*b+b*b
根据上式可得:root(ab*ab) = a*a+2*a*b+b*b = (a+b)...
分类:
其他好文 时间:
2015-03-02 09:33:23
阅读次数:
154