Java虚拟机的内存可以分为三个区域:栈(stack)、堆(heap)、方法区(method area) 方法区也在堆里面。 栈的特点: 1.栈描述的是方法执行的内存模型。每个方法被焦勇都会创建一个栈帧(存储局部变量、操作数、方法出口等) 2.JVM为每个线程创建一个栈,用于存放该线程执行方法的信息 ...
分类:
其他好文 时间:
2018-07-13 17:45:50
阅读次数:
174
概述 内存是程序运行的地方,使用Java语言编程代码时,适当的了解Java语言对于内存的划分及使用情况是有必要的。 内存结构(面积不代表占用内存的大小) 线程私有: PC寄存器 虚拟机栈 本地方法栈 线程共享: 堆 方法区 各区域的作用 堆(Heap) 描述 堆是虚拟机中所有线程共享的区域(涉及到线 ...
分类:
编程语言 时间:
2018-07-13 17:39:45
阅读次数:
184
GC介绍 对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是\"可达的\",哪些对象是\"不可达的\".当GC确定一些对象为\"不可达\"时,GC就有责任回收这些内存空间。 GC ...
分类:
其他好文 时间:
2018-07-12 22:43:18
阅读次数:
799
栈区与堆区 block本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在栈(stack)上,而不是在堆(heap)上。他本身的作于域是属于创建时候的作用域,一旦在创建时候的作用域外面调用block将导致程序崩溃。使用retain也可以,但是block的 ...
分类:
其他好文 时间:
2018-06-22 19:32:52
阅读次数:
259
这两天看了一下深入浅出JVM这本书,推荐给高级的java程序员去看,对你了解JAVA的底层和运行机制有比较大的帮助。废话不想讲了.入主题:先了解具体的概念:JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 堆区:1.存储的全部是对象,每个对象都包含一个与之 ...
分类:
其他好文 时间:
2018-06-13 15:20:45
阅读次数:
147
github: "代码实现" 本文算法均使用python3实现 1. 什么是堆 堆(heap) 是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的 数组对象 ,且堆总是一棵 " 完全二叉树 " 。由于堆是基于完全二叉树的结构,因此可以使用 顺序存储结构 ...
分类:
编程语言 时间:
2018-06-11 18:53:57
阅读次数:
187
一、什么是堆?(Heap) 堆是无序的,是一片不连续的内存域,由用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收。 是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。 二、什么是栈?(Stack) 栈是有顺序的,是 ...
何为单调队列? 单调队列是一个队列(废话) 而且必须同时满足下标单调和值单调两个单调特性。 跟优先队列不同,优先队列直接使用堆(heap)来实现,如何删去特定下标元素?不明。 本人喜欢用单调队列存下标,这样比存值不知道高到哪里去了。 新来一个元素,进队。之后特判长度有没有超过。超过则把最前面的元素出 ...
分类:
其他好文 时间:
2018-05-29 14:02:52
阅读次数:
155
array固定类型的数据序列,与list类似,只不过成员必须是相同的基本类型 array.typecodes #包含所有可用类型代码的字符串bBuhHiIlLqQfd heapq堆排序算法,堆(heap)是一种树形数据结构,其中子节点与父节点是一种有序关系。 bisect数组二等分算法,该模块支持按 ...
分类:
编程语言 时间:
2018-05-24 22:19:56
阅读次数:
310
关键词:构造函数,浅拷贝,深拷贝,堆栈(stack),堆heap,赋值运算符摘要: 在面向对象程序设计中,对象间的相互拷贝和赋值是经常进行的操作。 如果对象在申明的同时马上进行的初始化操作,则称之为拷贝运算。例如: class1 A("af"); class1 B=A; 此时其实际调用的是B(A)这 ...
分类:
编程语言 时间:
2018-05-18 15:33:31
阅读次数:
200