01,各司其职; 栈内存用来存储局部变量和方法的调用, 而堆内存用来存储java中的对象,无论是成员变量,局部变量,还是类变量 他们指向的对象都存储在堆内存中。 02,独有还是共享; 栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的对象 只能在其所属的线程中可见,即栈内存可以理解为私有内存, ...
分类:
编程语言 时间:
2017-06-02 09:45:34
阅读次数:
232
栈:存储值类型(有时候翻译成“堆栈”) 无ARC(自动引用计数)负担,由系统自动管理,以执行函数为单位(一个函数一个栈) 空间大小编译时决定(根据参数和局部变量可以确定) 函数执行时,系统自动分配一个栈 函数执行结束,系统会立即回收stack 函数之间通过拷贝值传递 具有局限性,大小有限额,超出会s ...
分类:
其他好文 时间:
2017-06-01 21:38:42
阅读次数:
147
在实现栈之前应该思考栈的一些用法: push pop top isempty 想清楚栈顶的组成; 下面是实现代码: ...
分类:
编程语言 时间:
2017-05-27 23:48:30
阅读次数:
338
一、概念: 单调栈的本质还是一个栈,只不过是栈的元素从栈底到栈顶单调递增或者是单调递减。 二、单调栈的维护: 每加入一个元素,将这个元素和栈顶元素相比较,(假设你维护的是一个单调递增的栈),如果当前元素大于等于栈顶元素,说明这个元素 没有破坏这个栈的单调性,直接加入;如果当前元素小于栈顶元素,直接向 ...
分类:
其他好文 时间:
2017-05-27 20:01:51
阅读次数:
157
上一篇文章已经简单介绍了jvm的内部体系结构。并且对各个组成部分做了简要的说明。下面通过一个简单的java程序,讲解运行过程中牵涉到的几个数据区域。 代码如下: jvm实例运行一个Java程序,首先需要通过类装载器子系统把作为程序运行起点的类装载到内存。形成可以被虚拟机直接使用的Java类型。在上面 ...
分类:
其他好文 时间:
2017-05-23 22:36:42
阅读次数:
219
先建立一个结构体节点: typedef struct Node{ int member; struct Node *pNext; }Node,*pNode; 创建一个栈: typedef struct stack{ pNode Top; pNode Bot; }Stack,*pStack; //初始 ...
分类:
其他好文 时间:
2017-05-13 22:10:13
阅读次数:
210
1.什么是jvm?(1)jvm是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现的。(2)jvm包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。(3)JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上 ...
分类:
其他好文 时间:
2017-05-11 18:32:28
阅读次数:
229
双栈排序 洛谷链接 用双栈进行排序,也就是给出一个序列,让你用两个栈来排序,输出排序的操作类型。 实现也比较简单,如果存在一个k,使得i<j<k且a[k]<a[i]<a[j],那么i和j就不能存在一个栈中。 代码: 1 #include<cstdio> 2 #include<cstdlib> 3 # ...
分类:
编程语言 时间:
2017-05-08 16:54:41
阅读次数:
184
要求: 一个栈依次压入1,2,3,4,5那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,而不能用另外的数据结构。 import java.util.Stack; public class Problem0... ...
分类:
其他好文 时间:
2017-05-02 18:26:01
阅读次数:
165