JVM的内存管理主要分为两大块,每一块里面也会分为各自的部分 1. 线程共享区 - 这个等于所有线程,共享的一些内容 程序计算器 - 这个就是程序运行时的一个代码读取器,用于管理和记录当前运行的代码 栈 Java虚拟机栈,方法执行的动态内存模型,每一个方法执行都会创建一个栈,用于记录局部变量表,操作 ...
分类:
其他好文 时间:
2019-05-26 17:41:30
阅读次数:
91
题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。classTreeNode:def__init__(self,x):self.val=xself.left=Noneself.right=NoneclassSolution:"""由于需要打印Z字型,那么我们在遍历整棵树的时候就需要维护一个栈。栈中
分类:
其他好文 时间:
2019-05-23 00:04:39
阅读次数:
113
【题目】 一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能使用其它数据结构 【分析】 栈是一种操作受限的数据结构,只能从某一端进行插入和删除和访问元素。能进行插入删除 ...
分类:
其他好文 时间:
2019-05-16 13:55:28
阅读次数:
147
# ### 递归函数 : 自己调用自己的函数 """ 递:去 归:回 有去有回是递归 触底反弹引起递归回的过程 1.函数全部执行完毕 2.遇到return 的时候 这两种都是回到上一次函数调用的位置. 每调用一次函数就会在内存里开辟一个栈帧空间, 每次调用结束后,要释放栈帧空间 递归实际上从内存角度... ...
分类:
其他好文 时间:
2019-05-11 19:48:31
阅读次数:
162
思路 利用了树上莫队的分块方式,保证每个块的大小都$\ge$B且$\le$3B,然后证明略过 仅叙述一下算法的过程 使用一个栈,依次dfs这个点的每个子树,如果发现新增的节点数大于等于B,就分出新的一块, 最后把剩下的节点塞进最后一个块里 分块的代码 AC代码 cpp include include ...
分类:
其他好文 时间:
2019-05-09 10:53:29
阅读次数:
145
思路:用一个栈来管理树的层次关系,索引代表节点的深度 方法一: ...
分类:
其他好文 时间:
2019-05-03 14:20:39
阅读次数:
167
内存分配以及回收Java虚拟机运行时数据区,分为以下几个模块,包含所有线程共有的数据区和线程单独享有的数据区。程序计数器:字节码行号,通过这个计数器来选取下一条需要执行的指令,线程独有。虚拟机栈:线程私有。方法在执行时会创建一个栈帧,用于存储局部变量表等。局部变量表中存放了编译器可知的基本数据类型、对象引用、returnAddress(指向了一条字节码指令的地址)本地方法栈:与虚拟机栈类似,只不过
分类:
编程语言 时间:
2019-04-28 20:26:53
阅读次数:
171
栈存放:会为每个方法(包括构造函数)开辟一个栈指针,方法执行完毕后,会自动退出,并释放空间 局部变量 先进后出 自下而上存储 方法执行完毕 自动释放空间 堆: 存放new出来的对象 需要垃圾回收器来回收 方法区:其实也是在堆中的 存放类的信息(代码)、 static变量、字符串常量等 ...
分类:
编程语言 时间:
2019-04-28 12:59:48
阅读次数:
132
思路: 准备两个栈 stackData stackMin ...
分类:
其他好文 时间:
2019-04-24 17:50:34
阅读次数:
326
一,Java运行原理 1)JVM简介 java虚拟机JVM。JVM是java语言最大的特点,java的优缺点也是缘于JVM技术。JVM是一个可运行Java字节码的虚拟计算机系统。它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。还包括一组寄存器、一个栈、一个垃圾回收堆和一个存储方 ...
分类:
编程语言 时间:
2019-04-21 21:44:13
阅读次数:
186