GDB调试命令大全 gdb --pid 1235 gdb core.1234 where (bt) //where the segmentation fault occurred f 1 //切换栈帧 info locals //打印内存 WinDBG调试技巧 .ecxr command displ ...
分类:
其他好文 时间:
2017-09-30 19:59:54
阅读次数:
164
引言 判断对象是否被回收的算法有引用计数算法和可达性分析算法。其中可达性分析算法是根据GC Roots根节点作为起始点向下搜索引用链,找不到引用链则判定对象可回收。 可作为GC Roots根节点的对象主要是在全局性的引用(如常量、类静态属性)和执行上下文中(如栈帧中的本地变量表),现在的很多应用仅方 ...
分类:
其他好文 时间:
2017-09-29 19:51:33
阅读次数:
176
Java虚拟机JVM(Java Virtual Machine)中内存分块 JAVA中通常分为5个区域虚拟机栈、堆、方法区、程序计数器、本地方法区。我们一般讲的是Java虚拟机管理的四个区域虚拟机栈、堆、方法区和程序计数器。 虚拟机栈 虚拟机栈通常也叫栈(stack),是有多个栈帧组成的;是线程私有 ...
分类:
编程语言 时间:
2017-09-29 13:58:02
阅读次数:
208
刚开始看字符串的时候,经常会看到类似的题,难免会有些不解,查看答案总会提到字符串常量池、运行常量池等概念,很容易让人搞混。 下面就来说说Java中的字符串到底是怎样创建的。 String有两种赋值方式,第一种是通过“字面量”赋值。 第二种是通过new关键字创建新对象。 String str = ne ...
分类:
编程语言 时间:
2017-09-27 20:39:18
阅读次数:
140
《深入理解计算机系统》第三章——程序的机器级表示。作者首先讲解了汇编代码和机器代码的关系,阐述了汇编承上启下的作用;接着从机器语言IA32着手,分别讲述了如何存储数据、如何访问数据、如何完成运算以及如何进行跳转。通过这些步骤,又告诉了我们分支语句、循环语句是怎么完成的,函数调用、栈帧结构以及递归过程 ...
分类:
编程语言 时间:
2017-09-27 18:58:35
阅读次数:
190
1 程序计数器 线程私有,记录线程所执行的字节码行号指示器。 2 虚拟机栈 描述Java方法执行内存模型 , 进入一个方法创建栈帧。 3 Java堆 存放对象实例 4 方法区:编译后的代码数据,包括加载 的类信息,常量,静态变量。 5 常量池 :class文件常量池方法区一部分存放编译器生成的字面量 ...
分类:
其他好文 时间:
2017-09-25 00:59:22
阅读次数:
216
前言: 首先思考垃圾收集(Garbage Collection,GC)需要完成的三件事情 1)哪些内存需要回收? 2)什么时候回收? 3)如何回收? 再上一个博客中提到了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域会随着线程而生,随线程而灭;栈中的栈帧随着方法的进行 ...
分类:
编程语言 时间:
2017-09-24 13:51:39
阅读次数:
209
《深入理解计算机系统》第三章——程序的机器级表示。作者首先讲解了汇编代码和机器代码的关系,阐述了汇编承上启下的作用;接着从机器语言IA32着手,分别讲述了如何存储数据、如何访问数据、如何完成运算以及如何进行跳转。通过这些步骤,又告诉了我们分支语句、循环语句是怎么完成的,函数调用、栈帧结构以及递归过程 ...
分类:
编程语言 时间:
2017-09-24 10:43:24
阅读次数:
231
虚拟机栈 虚拟机栈是线程私有的。 虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态连接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机中入栈到出栈的过程。 局部变量表存放了编译期 ...
分类:
其他好文 时间:
2017-09-22 12:03:40
阅读次数:
201
假如面试回答js的运行机制时,你可能说出这么一段话:“Javascript的事件分同步任务和异步任务,遇到同步任务就放在执行栈中执行,而碰到异步任务就放到任务队列之中,等到执行栈执行完毕之后再去执行任务队列之中的事件。”但你能说出背后的原因吗? 1.线程与进程 进程:是系统资源分配和调度的单元。一个 ...
分类:
编程语言 时间:
2017-09-17 20:53:59
阅读次数:
203