Listview的执行顺序1.先执行getCount()返回数据源的长度2.根据数据源长度,执行getView()进行绘制ViewListview的缓存convertView相当于一个缓存,开始为空,当有item不可见的时候,convertView将回收他的数据。后面在更新的条目只需要更新这个convertView就可以了,这样可以大..
分类:
其他好文 时间:
2014-12-25 06:39:29
阅读次数:
170
不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。Android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道Java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实...
分类:
移动开发 时间:
2014-12-24 18:05:20
阅读次数:
164
为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这 类...
分类:
其他好文 时间:
2014-12-23 16:53:50
阅读次数:
185
引言 Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃...
分类:
编程语言 时间:
2014-12-23 15:29:07
阅读次数:
120
上面这个程序创建了许多Chair对象,而且在垃圾收集器开始运行后的某些时候,程序会停止创建Chair。由于垃圾收集器可能在任何时间运行,所以我们不能准确知道它在何时启动。因此,程序用一个名为gcrun的标记来指出垃圾收集器是否已经开始运行。利用第二个标记f,Chair可告诉main()它应停止对象....
分类:
编程语言 时间:
2014-12-23 15:24:36
阅读次数:
137
透视Java垃圾回收 1、命令行参数透视垃圾收集器的运行 2、使用System.gc()可以不管JVM使用的是哪一种垃圾回收的算法,都可以请求Java的垃圾回收。在命令行中有一个参数-verbosegc可以查看Java使用的堆内存的情况,它的格式如下: java -verbosegc clas...
分类:
编程语言 时间:
2014-12-23 15:24:29
阅读次数:
170
1. 在IDE中查看Log信息当程序运行垃圾回收的时候,会打印一条Log信息,其格式如下:D/dalvikvm: , , , GC_Reason表示导致垃圾回收的原因以及当前的回收类型,包括以下几类: GC_CONCURRENT:当堆中对象数量达到一定是触发的垃圾收集 GC_FOR_MALLOC:....
分类:
移动开发 时间:
2014-12-23 12:15:30
阅读次数:
175
顾名思义,就是保证在JVM中只有实例对象存在
单例设计模式,应用很广,优点如下:
1、当某个对象比较大,且应用很频繁,采用单例就可以节省很大的系统开销
2、new一次后,就不需要再new了,降低了系统内存的使用频率,减轻垃圾回收机制的工作
3、某些情况下,需要一个类来控制全局时,就需要单例。(一个国家只能有一个最高领导人,多了话,听谁的?)
一个简单的懒汉式:
public...
分类:
其他好文 时间:
2014-12-23 00:22:09
阅读次数:
151
一、为什么需要GC应用程序对资源操作,通常简单分为以下几个步骤:1、为对应的资源分配内存2、初始化内存3、使用资源4、清理资源5、释放内存应用程序对资源(内存使用)管理的方式,常见的一般有如下几种:1、手动管理:C,C++2、计数管理:COM3、自动管理:.NET,Java,PHP,GO…但是,手动...
分类:
其他好文 时间:
2014-12-22 22:29:08
阅读次数:
318
1 using System; 2 3 namespace GCTest 4 { 5 class Program 6 { 7 static void print(string str) { Console.WriteLine(str); } 8 s...
分类:
Web程序 时间:
2014-12-22 12:28:06
阅读次数:
203