一、关于Java垃圾回收的简介(1)Java 内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。(2)每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由 JIT 编译器进行一些优化),因此这几个区域的内存分配和回收都具备确定性.在这几个区域内不需要过多考虑回收的问题,...
分类:
编程语言 时间:
2015-04-16 17:36:04
阅读次数:
182
一. 递归的慢究竟慢在哪
递归就是函数自己调用自己,函数每次调用的时候需要将以下内容存入递归栈:调用函数地址、形参、局部变量、返回值。所以如果递归调用了N次,那压栈操作要保存N
* 调用函数地址、N * 局部变量、N * 形参、N * 返回值。这势必是影响效率的。
二. 递归和循环的比较:
递归和循环是两种不同的解决问题的思路,我们不能片面的说循环的效率一定会比递归高,下面我们做...
分类:
其他好文 时间:
2015-04-15 09:37:41
阅读次数:
120
题目大意:
为了表示纺织CAD系统的纱线排列问题。用小写字母来表示不同的纱线,连接在一起表示纱线的组合。
前边加数字表示重复多少次。比如2(abc),a、b、c表示不同的纱线,abc表示纱线组合,2+()表示abc
重复两次,即abcabc。如果前边没有数字,则默认为1。现在给你一个这样的字符串,请将表达式展开
输出排列结果。
思路:
使用栈操作,将字符串展开。重点在于去括号。
1)如果遇到数字或是左括号,直接入栈。
2)如果遇到字母,分两种情况:
栈顶元素为数字num,则将字母压入占中num次。
栈...
分类:
其他好文 时间:
2015-04-14 18:02:04
阅读次数:
192
完整代码如下,其实队栈都只是链表的一种变化而已#include #include typedef struct student * PNode;typedef struct stacklink * PStack;typedef struct student{ int data; PNod...
分类:
其他好文 时间:
2015-04-11 20:46:54
阅读次数:
124
首先说一下Task是一个什么概念吧:Task是一个包含activity的列表。没
错,简单的说就是按照启动的先后来排队的一个队列。Back Stack,就是回退栈的意思:那么有什么用?Back
Stack是存储一个Task的实现方式,一个容器。它具有栈的特性:后进先出。
那么,依据什么来把activity指定给某个Task?
------默认情况下,根据activity的启动的顺序,加入...
分类:
其他好文 时间:
2015-04-02 09:08:33
阅读次数:
1739
STL 中栈的使用方法(stack)基本操作:push(x) 将x加入栈中,即入栈操作pop() 出栈操作(删除栈顶),只是出栈,没有返回值top() 返回第一个元素(栈顶元素)size() 返回栈中的元素个数empty() 当栈为空时,返回 true使用方法:#includeusing names...
分类:
其他好文 时间:
2015-04-01 19:18:52
阅读次数:
146
用递归遍历的优点是算法简单明了,缺点也十分明显:对于栈的消耗比较大。尤其是在嵌入式应用中,嵌入式处理器资源往往有限。每次递归调用,都会涉及到通用寄存器、SP指针、PC指针等的压栈。当树的深度比较大时,对于栈的消耗会变得非常严重,很有可能造成栈的溢出。
因此,二叉树的非递归遍历方法就显得非常有实际应用价值。下面是非递归遍历的算法,这里使用了数据结构栈,利用其先进后出的特点,用结点入栈出栈过程手工模拟递归调用过程中的栈操作。...
分类:
编程语言 时间:
2015-03-21 09:53:45
阅读次数:
264
栈: (操作系统)由操作系统自动分配释放 ,存放局部变量的值、函数的参数值等。 (缓存)栈使用的是一级缓存,他们通常都是被调用时处于存储空间中,调用完毕立即释放。 (数据结构)先进后出堆: (操作系统)一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。n...
分类:
其他好文 时间:
2015-03-09 00:18:07
阅读次数:
190
1、进程A和进程B共享页面,代码如下:if (!(pid=fork())) {
压栈操作;//子进程B
}
if (pid>0){
压栈操作;//父进程A
} 2、我们假设现在系统有一个用户进程A,他自己对应的程序代码已经载入内存中,此时该进程内存中所占用的页面...
分类:
其他好文 时间:
2015-02-10 15:25:03
阅读次数:
189
背景:一直wrong在while()语句上最开始的时候没有把字符串为0考虑进去,所以导致输出一直是not。
思路:本题我构造了一个堆栈和一个映射关系,p,q,r,s,t每个只有0和1两种情况,所以可以直接用for循环枚举即可,枚举的时候用map产生映射,这样比较简单,然后就是定义一个字符串数组,从字符串最后一个元素开始处理,然后就是简单的堆栈操作,在元素处理中,按照题意,遇到p,q,r,s,t直...
分类:
其他好文 时间:
2015-02-10 11:20:40
阅读次数:
130