1.什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能实现的。java虚拟机包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具 ...
分类:
其他好文 时间:
2020-07-23 01:54:16
阅读次数:
111
1、运行时数据区域 1.1、程序计数器 一块较小的内存,它可以看作是当前线程所执行的字节码的行号指示器。 线程独有 唯一一个没有规定OutOfMemoryError情况的区域 1.2、Java虚拟机栈 线程私有,生命周期与线程相同 每个方法被执行的时候都会创建一个栈帧,方法的开始到结束对应了栈帧的入 ...
分类:
其他好文 时间:
2020-07-22 02:07:10
阅读次数:
65
用栈的知识,编写一个程序,输入二进制,输出十进制 注意点: 1.在主函数里别忘了先创建一个栈,在进行入栈操作 2.转换过程会用到一个循环,需要用到栈的实际长度作为条件,要在进入循环前先把长度计算出来存入到变量len中,而不能用stack.top - stack.base来代替len,因为在循环中需要 ...
分类:
编程语言 时间:
2020-07-18 19:55:29
阅读次数:
80
程序计数器:线程私有。是一块较小的内存,是当前线程所执行的字节码的行号指示器。是Java虚拟机规范中唯一没有规定OOM(OutOfMemoryError)的区域。 Java栈:线程私有。生命周期和线程相同。是Java方法执行的内存模型。执行每个方法都会创建一个栈帧,用于存储局部变量和操作数(对象引用 ...
分类:
其他好文 时间:
2020-07-18 00:33:28
阅读次数:
63
栈 "栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。 一、概念 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表,这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入 ...
分类:
其他好文 时间:
2020-07-15 12:50:17
阅读次数:
50
401. 二进制手表 描述: 二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。 每个 LED 代表一个 0 或 1,最低位在右侧。 思路:递归回溯法。 402. 移掉K位数字 描述: 思路:维护一个栈。来一个数入栈,当栈顶元素大于准备进栈的, ...
分类:
其他好文 时间:
2020-07-11 22:37:37
阅读次数:
80
简介 我们知道JVM运行时数据区域专门有一个叫做Stack Area的区域,专门用来负责线程的执行调用。那么JVM中的栈到底是怎么工作的呢?快来一起看看吧。 JVM中的栈 小师妹:F师兄,JVM为每个线程的运行都分配了一个栈,这个栈到底是怎么工作的呢? 小师妹,我们先看下JVM的整体运行架构图: 我 ...
分类:
其他好文 时间:
2020-07-10 09:42:39
阅读次数:
58
// 反转单链表 ListNode * ReverseList(ListNode * pHead) { // 如果链表为空或只有一个结点,无需反转,直接返回原链表头指针 if(pHead == NULL || pHead->next == NULL) return pHead; ListNode * ...
分类:
其他好文 时间:
2020-07-04 22:37:54
阅读次数:
78
非递归 思路1 用两个栈实现后序遍历的步骤: 申请一个栈stack1,将头节点压入栈中 将stack1中元素弹出,记为temp,依次将temp的左孩子,右孩子压入stack1(如果有的话 每个从stack1中弹出的元素都压入stack2 4.不断重复步骤2,3直到stack1为空停止 5.从stac ...
分类:
其他好文 时间:
2020-07-04 22:33:18
阅读次数:
64
内存区域虚拟机栈生命周期与线程相同,描述的是Java方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧,用于存取局部变量表、操作数栈、动态链接、方法出口等信息本地方法栈与虚拟机栈作用相似,只不过本地方法栈是为虚拟机使用到的Native方法服务程序计数器内存空间较小,可以看做是当前线程所执行的字节码的行号指示器。此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryErr
分类:
其他好文 时间:
2020-07-04 10:32:13
阅读次数:
70