Java8内存模型—永久代(PermGen)和元空间(Metaspace) 一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创 ...
分类:
编程语言 时间:
2019-11-22 23:30:56
阅读次数:
94
jvm:分为 栈,堆,方法区metho area【属于堆】 栈: 1.压栈:先进后出,后进先出,栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量,操作数,方法出口) 2.JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(参数,局部变量) 3.栈属于线程私有不能实现线 ...
分类:
编程语言 时间:
2019-11-14 22:17:32
阅读次数:
77
程序计数器 线程私有 指向了正在执行的虚拟机字节码指令的地址;如果是本地方法,数值为空 没有 OutOfMemoryError 错误的区域 Java虚拟机栈 线程私有; 生命周期与线程相同; 代表着 Java 方法执行的内存模型:每个方法执行时的同时会创建一个栈帧(Stack Frame)用于存放 ...
分类:
其他好文 时间:
2019-11-12 21:53:42
阅读次数:
122
字节码与数据类型 在虚拟机的指令集中,大多数的指令包含了其操作所对应的 数据类型信息 iLoad:从局部变量表中加载int型数据到操作数栈 大多数指令包含类型信息 类型多,指令少 加载与存储指令 加载和存储指令用于将数据在栈帧中的局部变量表和操作数栈直接来回传输 将局部变量表加载到操作数栈: ilo ...
分类:
编程语言 时间:
2019-10-29 09:51:46
阅读次数:
95
[TOC] 屏幕截图 考察内容 本次lab主要考察对栈帧的掌握程度~~以及对Ctrl+F的掌握程度~~。 各题答案 level1 level2 level3 level4 level5 解题思路 level1 任务 利用缓冲区溢出使getbuf函数结束后返回touch1。 思路 将可执行文件ctar ...
分类:
移动开发 时间:
2019-10-29 00:27:19
阅读次数:
599
三、函数 1.调用函数 数据类型转换 2.定义函数 return是返回值,一般放在函数的最后,一旦执行到return时,函数就执行完毕并将结果返回,且return语句块结束之后后面的代码是不执行的,即一旦遇到return结束整个函数。 如果没有return语句,函数执行完毕后也会返回结果,只是结果为 ...
分类:
编程语言 时间:
2019-10-27 12:25:25
阅读次数:
76
调用栈(Call Stack) 调用栈(Call Stack)是一个基本的计算机概念,这里引入一个概念:栈帧。 栈帧是指为一个函数调用单独分配的那部分栈空间。 当运行的程序从当前函数调用另外一个函数时,就会为下一个函数建立一个新的栈帧,并且进入这个栈帧,这个栈帧称为当前帧。而原来的函数也有一个对应的 ...
分类:
编程语言 时间:
2019-10-26 18:57:18
阅读次数:
86
原来CPU寄存器分为两类:
用户可见寄存器,用户可以对这些寄存器进行编程,还可以通过优化使CPU因使用这类寄存器而减少对主存的访问次数,也就是说我们使用汇编语言可以直接对其操作;
控制和状态寄存器,用户不可对其进行编程,他们被控制部件使用,以控制CPU的操作,也可以被带有特权的操作系统程... ...
分类:
系统相关 时间:
2019-10-22 18:07:38
阅读次数:
116
2.虚拟机栈 定义:虚拟机栈(Java Virtual Machine Stacks)就是每个线程运行需要的内存空间,栈由一个一个的栈帧(Frame)组成,栈帧就是每个方法运行时需要的内存(方法的参数、局部变量、返回地址) 每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法 问题分析 垃圾回收 ...
分类:
编程语言 时间:
2019-10-14 23:34:27
阅读次数:
106
2019 2020 1 20175204 《信息安全系统设计基础》第三周学习总结 学习目标 1.理解逆向的概念 2.掌握X86汇编基础,能够阅读(反)汇编代码 3.了解ISA(指令集体系结构) 4.理解函数调用栈帧的概念,并能用GDB进行调试 实验楼学习内容总结 要点: 1.X86 寻址方式经历三代 ...
分类:
其他好文 时间:
2019-10-13 23:33:27
阅读次数:
135