一、java栈 ????Java 栈总是和线程关联在一起,每当创建一个线程时,JVM就会为这个线程创建一个对应的Java栈,在这个Java栈中又会含有多个栈(Frames),这些栈帧是与每个方法关联起来的,每个运行一个方法就创...
分类:
编程语言 时间:
2015-08-27 19:28:02
阅读次数:
221
压栈一次esp-4,ebp不变esp是栈顶指针寄存器,堆栈操作只和esp有关比如有一个函数a,有两个参数,一般是这样的PUSH 1 参数2压栈,esp-4PUSH 2 参数1压栈,esp-4CALL a 调用a:PUSH EBP 保存ebpMOV EBP,ESP 改变栈帧,以后访问参数通过ebp,访...
分类:
移动开发 时间:
2015-08-27 18:13:32
阅读次数:
221
引言Java的内存动态分配和垃圾收集的问题,都交给了JVM来处理。意注,将JVM运行数据区(虚拟机栈【栈帧】,程序计数器,堆内存)粗略的分为栈和堆(所有线程共享),回收的是堆中的对象实例。不是栈中的引用类型。
那么JVM是如何处理的?
从三个问题来分析:
1. 哪些内存需要回收?
2. 什么时候进行回收?
3. 如何回收?
注:现代收集器基本采用分代收集算法,堆分为:新生代和老年代...
分类:
其他好文 时间:
2015-08-27 13:30:06
阅读次数:
275
数组,异质结构以及指针的详解
前言
昨天看了一部韩国电影,老千2,看到凌晨5点,不过发现韩国的棒子们确实养眼,女的贼拉漂亮,还有大尺度哦~
咱们上一次分析了过程(方法)的实现,其中精妙的栈帧占据了首要的地位,不知道各位还能否记忆起来.今天咱们一起来看看数组的相关内容,相比之下,数组和流程控制与过程的实现难度差不多,尤其是动态数组可能还要稍微难一些,因为大家做好...
分类:
编程语言 时间:
2015-08-20 16:52:38
阅读次数:
149
jvm的垃圾回收是个老生常谈的问题,在这里,我会从以下一个方面来和大家聊聊垃圾回收。
1 在哪里收垃圾?
2 哪些内容可认为是垃圾?
3 怎么回收垃圾?
4 gc报告的阅读
在哪里收垃圾
这里,我建议大家先读一下拙作: java内存管理
上图中的5部分:
虚拟机栈,本地方法栈,程序计数器三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行...
分类:
编程语言 时间:
2015-08-20 13:17:52
阅读次数:
209
函数调用:即调用函数调用被调用函数,调用函数压栈,被调用函数执行,调用函数出栈,调用函数继续执行的一个看似简单的过程,系统底层却做了大量操作。操作:1, 调用函数帧指针(函数参数,局部变量,栈帧状态值,函数返回地址)入栈,栈指针自减2, 保存调用函数的状态数据入寄存器3, 被调用函数帧指针入栈,执行...
分类:
编程语言 时间:
2015-08-11 15:53:04
阅读次数:
152
函数调用:即调用函数调用被调用函数,调用函数压栈,被调用函数执行,调用函数出栈,调用函数继续执行的一个看似简单的过程,系统底层却做了大量操作。操作:1, 调用函数帧指针(函数参数,局部变量,栈帧状态值,函数返回地址)入栈,栈指针自减2, 保存调用函数的状态数据入寄存器3, 被调用函数帧指针入栈,执行...
分类:
编程语言 时间:
2015-08-07 19:00:50
阅读次数:
230
函数调用:即调用函数调用被调用函数,调用函数压栈,被调用函数执行,调用函数出栈,调用函数继续执行的一个看似简单的过程,系统底层却做了大量操作。操作:1, 调用函数帧指针(函数参数,局部变量,栈帧状态值,函数返回地址)入栈,栈指针自减2, 保存调用函数的状态数据入寄存器3, 被调用函数帧指针入栈,执行...
分类:
编程语言 时间:
2015-08-06 14:51:42
阅读次数:
412
这些天一直都想找个机会把Java内存方面的知识整理整理,毕竟任何知识都涉及到这方面。Java内存分析是java学习的一大重点。下面我们进入正式话题讨论:我们知道Java内存大致分为三块:如下图我们先大致了解下java各分区的数据存放内容:栈区:主要为方法服务,存在许许多多的方法栈帧,在方法栈帧里开辟...
分类:
编程语言 时间:
2015-08-05 12:34:42
阅读次数:
152
一 反射机制的概念:指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法.这种动态获取信息,以及动态调用对象方法的功能叫java语言的反射机制.二 反射机制的应用:生成动态代理,面向切片编程(在调用方法的前后各加栈帧).三 反射机制的原理:1 ...
分类:
编程语言 时间:
2015-07-30 16:47:49
阅读次数:
176