[iOS7的一些总结]5、iOS中的内存管理我们知道,为了更加方便地处理内存管理问题,将开发人员从繁琐的内存的分配和释放工作中解放出来而专注于产品和逻辑,iOS提供了一种有效的方法,
即自动引用计数ARC。采用了ARC之后,绝大部分内存管理的问题就不需要我们继续操心了。但是从另一个方面讲,这个方便的...
分类:
移动开发 时间:
2014-05-07 17:31:17
阅读次数:
400
===================== 析构函数
=========================* 析构函数在对象所占用内存释放时调用,通常用来释放相关的资源*
析构函数就是一个特殊的类成员函数,它是构造函数相反构造函数:对象在分配内存之后,立即调用析构函数:对象在内存被释放之前调用例:~P...
分类:
编程语言 时间:
2014-05-07 17:26:16
阅读次数:
394
1,线程概述线程是程序汇中独立的指令流。线程有一个优先级,实际上正在处理的程序的位置计数器,一个存储其局部变量的栈。每个线程都有自己的栈。但应用程序的内存和堆由一个进程的所有线程共享。进程包含资源,如windows句柄,文件句柄或其他内核对象。每个进程都分配了虚拟内存。一个进程至少包含一个线程。操作...
分类:
编程语言 时间:
2014-05-07 17:13:48
阅读次数:
477
一、操作系统中线程和进程的概念现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个...
分类:
编程语言 时间:
2014-05-07 13:54:19
阅读次数:
326
前面一片文章介绍了如何上传和下载文件,这篇文章将介绍一下如何在iOS设备中进行缓存。这篇文章将只介绍一下将内容缓存到内存中,下一篇文章就介绍一下在iOS磁盘上缓存内容。使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少...
分类:
移动开发 时间:
2014-05-07 13:39:08
阅读次数:
503
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入...
分类:
编程语言 时间:
2014-05-07 13:08:37
阅读次数:
312
对于java程序员来说,并不必显示地对内存进行管理,一切都交给java虚拟机去做吧,而且,你也不一定做得比java虚拟机来得专业。好像所有内存管理都交给虚拟机去做就万事大吉了,但是,事实有时并非如此,可能有时你会遇到一些让你困惑的问题,如OutOfMemoryError异常,如stackOver.....
分类:
编程语言 时间:
2014-05-07 12:41:03
阅读次数:
373
Memory:内存使用情况可能是系统性能中最重要的因素。如果系统“页交换”频繁,说明内存不足。“页交换”是使用称为“页面”的单位,将固定大小的代码和数据块从RAM移动到磁盘的过程,其目的是为了释放内存空间。尽管某些页交换使Windows2000能够使用比实际更多的内存,也是可以接受的,但频繁的页交换...
分类:
其他好文 时间:
2014-05-07 11:17:27
阅读次数:
465
finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理;当调用System.exit(0)时,杀死了整个进程,这时候活动所占的资源也会被释放。在开发android应用时,常常通过按返回键(即keyCode...
分类:
移动开发 时间:
2014-05-06 23:54:54
阅读次数:
510
1、const、mutable与volatile的区别:const表明内存被初始化以后,程序将不能对它进行修改。volatile则表明,即使程序代码没有对内存单元进行修改,但是里面的值也可能会发生变化。例如:将一个指针指向某个硬件位置,其中包含了来自串行端口的时间和信息,在某些情况下,硬件而不是程序...
分类:
编程语言 时间:
2014-05-06 23:53:29
阅读次数:
518