Java内存分配与管理是Java的核心技术之一,今天我们深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域...
分类:
编程语言 时间:
2014-05-10 08:13:00
阅读次数:
387
接着上一篇读书笔记:先简单介绍了栈、队列和背包,然后涉及算法分析和书中的研究算法的方法。
分类:
其他好文 时间:
2014-05-10 07:52:56
阅读次数:
285
栈(操作系统):由编译器自动分配释放
,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放堆(操作系统):
一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。堆则是存放在二...
分类:
其他好文 时间:
2014-05-10 05:27:11
阅读次数:
294
第一章 内存分配
1. 内存区域。
方法区和堆(线程共享),程序计数器 , VM栈 和 本地方法栈(线程隔离)。
1) java虚拟机栈:线程私有。描述的是java方法执行的内存模型:栈帧,用户存储 局部变量表,操作数栈,动态链接,方法出口等信息。
局部变量表在编译时即可完全确定!如果线程请求的栈深度大于 规定的深度,StackOverflowErro...
分类:
其他好文 时间:
2014-05-10 04:47:01
阅读次数:
275
应用需求:
在网盘开发过程中有这样一个需求,即对文件版本进行控制,即记录文件版本的更替信息,这里说的更替信息仅仅是记录不同时刻的文件变化,即文件的增、删、改、重命名等操作。在每个待监控的目录下都会保存一份文件,记录文件变化的增量信息,每次低版本到高版本升级的时候就可以通过消元合并操作快速地进行。关于文件版本控制的具体实现方案会在开发完善后列出,这里仅仅指出它的保存方式,即将文件操...
分类:
其他好文 时间:
2014-05-10 03:37:35
阅读次数:
368
数组和指针的区别2010-04-07 17:32:40分类:C/C++
C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组...
分类:
其他好文 时间:
2014-05-10 03:21:20
阅读次数:
278
一、最基本的工作1、准备RAM
如果是SRAM这步可以省略,但如果是SDRAM就需要配置一下时序才能使用。RAM是必须准备的,没有RAM将来的全局变量和堆栈在哪儿开辟。2、准备SP
SP肯定是设置在RAM中。SP必须设置好,不然程序怎么跳转到C函数运行--需要入栈操作。3、准备代码 对于处理器...
分类:
其他好文 时间:
2014-05-10 02:59:42
阅读次数:
238
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动。
进程是系统进行资源分配和调度的一个独立单位.。 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),...
分类:
编程语言 时间:
2014-05-10 02:35:32
阅读次数:
341
有时候,我们跟踪某个函数的时候,不知道这个函数是哪个函数调用的,当然对代码比较熟悉的话,直接看代码就可以了,但如果不熟悉,则可以使用2个方法:1、使用traceview来查看,但使用过程中,有些机器无法列出当前运行的进程,无法跟踪2、在该函数添加打印堆栈的log,可以直接打印出调用关系。Log.e(...
分类:
移动开发 时间:
2014-05-10 00:18:56
阅读次数:
532
很多人有疑问,java有很好的垃圾回收机制,怎么会有内存泄露?其实是有的,那么何为内存泄露?在Java中所谓内存泄露就是指在程序运行的过程中产生了一些对象,当不需要这些对象时,他们却没有被垃圾回收掉,而且程序运行中很难发现这个对象,它始终占据着内存却没有发挥作用。
我举这样一个例子,在现实开发中我们需要自定义一个先进后出的栈集合,代码如下:
{CSDN:CODE:335808}
这个代码...
分类:
编程语言 时间:
2014-05-09 22:39:10
阅读次数:
412