当声明值类型时,内存会在栈(先进后出)上分配相应的空间,栈会在负责跟踪应用程序的过程中判断是否有运行内存需要。当声明引用类型时,.NET会在栈中创建一个指针,而实际的对象将会存储到一个叫做“堆”的内存区域中。“堆”不会追踪运行内存,它只是能够被随时访问到的一堆对象而已。不同于栈(用于静态内存的...
分类:
其他好文 时间:
2014-09-01 17:29:13
阅读次数:
222
可执行程序包括BSS段、数据段、代码段(也称文本段)。一.BSSBSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。注意和数据段的...
分类:
其他好文 时间:
2014-08-28 21:07:36
阅读次数:
255
在计算机系统中,运行的应用程序的数据都是保存在内存之中不同类型的数据,保存的内存区域不同,其中包括:1->栈区(stack) 由编译器自动分配并释放,一般存放函数的参数值,局部变量等2->堆区(heap) 由程序员分配和释放,如果程序员不释放,程序结束时,可能会由操作系统回收3->寄存器区 用来保存...
分类:
其他好文 时间:
2014-08-27 00:14:26
阅读次数:
204
一:Java技术体系模块图二:JVM内存区域模型1.方法区也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。运行时常...
分类:
其他好文 时间:
2014-08-25 19:11:44
阅读次数:
267
类型可以分为两类:引用类型和值类型。值类型: 值类型直接包含值,变量引用位置就是值在内存中实际存储的位置。需要的内存会在编译时固定下来,不会在运行时改变。因为大小是固定的,所以值类型可以存储在称为stack的内存区域。引用类型: 引用类型和引用它们的变量指向数据存储位置,引用类型存储的是对一个内.....
分类:
其他好文 时间:
2014-08-22 00:19:45
阅读次数:
186
本文涉及的是ring0下的获取当前进程工作目录的方法,LKM位于linux的内核内存区域,任何进程都可以通过LKM的导出函数指定当前LKM的代码,所以,我们需要在LKM中获取当前调用进程的当前工作目录
分类:
系统相关 时间:
2014-08-21 16:49:04
阅读次数:
624
#########################################################进程与线程进程和线程都是由操作系统分配和调度的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单...
分类:
移动开发 时间:
2014-08-21 09:37:23
阅读次数:
357
在listview中如果每个item都有图片需要下载的话,我们就得考虑由于大量图片加载而导致的oom(out of memory)问题。
一个典型的做法是,下载图片的时候看看缓存中有没有该图片,如果缓存中没有,就从sd卡中读取,如果sd卡中还没有,再去服务器下载,下载下来的图片先放在sd卡中,并放到缓存中。如此周而复始。
这其中涉及到的就是缓存怎么设计,比较通用的做法就是使用LRU算法来缓存图片,先在手机端设置一个内存区域用于缓存图片,然后将我们下载的图片以键值对的形式丢进去,这样我们就能取到相应的图片啦,...
分类:
其他好文 时间:
2014-08-21 00:17:03
阅读次数:
248
主要参考资料:《深入理解Java虚拟机》,未经本人及原书作者同意禁止转载。JVM中的数据区域JVM中给数据分了这么几个区域:其中: 1.程序计数器: 程序计数器是一块较小的内存空间,为当前线程所执行的字节码的行号指示器。也就是说,程序再翻译成为字节码了之后,分支、循环、跳转、异常处理、线程恢...
分类:
编程语言 时间:
2014-08-14 20:10:29
阅读次数:
281
原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。举...
分类:
其他好文 时间:
2014-08-13 14:46:46
阅读次数:
210