数据结构 数组(向量,Vector) 链表(列表, List) 栈(Stack) 队列(Queue) 堆(Heap) 树(Tree) 二叉树(BinaryTree) 平衡树(AVLTree) 红黑树 图 ...
分类:
其他好文 时间:
2018-08-31 17:17:11
阅读次数:
114
当你有很多书时,你会考虑买一个书柜,将你的书分门别类摆放进入。使用了书柜不仅仅使房间变得整洁,也便于以后使用书时方便查找。在计算机程序中会有很多数据,这些数据也需要一个容器将他们管理起来,这就是数据结构。常见的数据结构:数组(Array)、集合(Set)、列表(List)、队列(Queue)、链表(Linkedlist)、树(Tree)、堆(Heap)、栈(Stack)和字典(Dictionary
分类:
编程语言 时间:
2018-08-21 15:17:16
阅读次数:
144
堆(heap):FIFO,所有线程共享的一块内存,是专门存放对象实例的地方,GC发生在这里。随JVM启动而创建 栈(stack):LIFO,应该叫做虚拟机栈,每个线程私有的,存放该线程调用的方法栈帧,存储局部变量表、操作数栈、程序出口、动态链接等,每一个方法的调用就是入栈出栈的过程。 方法区(non ...
分类:
其他好文 时间:
2018-08-14 14:26:19
阅读次数:
206
总结自《深入理解java虚拟机》 上图: 这是阅读该章节后画的一个总结图 运行时数据区可以分为两部分:线程共享区和线程私有区 一、线程共享区 这部分区域又分为堆(Heap)和方法区(也就是通常所说的非堆内存) 1、Heap (1)堆是在JVM启动时创建,主要存放对象实例,在虚拟机规范中的描述是:所有 ...
分类:
其他好文 时间:
2018-08-02 20:52:53
阅读次数:
145
这里先说两个概念:1、堆(heap)2、栈(stack)堆 是堆内存的简称。栈 是栈内存的简称。说到堆栈,我们讲的就是内存的使用和分配了,没有寄存器的事,也没有硬盘的事。各种语言在处理堆栈的原理上都大同小异。堆是动态分配内存,内存大小不一,也不会自动释放。栈是自动分配相对固定大小的内存空间,并由系统 ...
分类:
编程语言 时间:
2018-08-02 13:52:02
阅读次数:
157
堆(heap) 为程序保存的一块内存区域,用来保存那些在运行时才知道其存在与大小的数据; 程序能够从堆中分配内存给这些元素;在用完之后,应该释放掉这些内存。 堆中所有的的东西都是匿名的 不能按名字直接访问只能通过指针间接的访问 栈(stack) 为程序保存的一块内存区域,用来保存状态数据, 例如:过 ...
分类:
其他好文 时间:
2018-08-01 16:03:40
阅读次数:
118
JVM内存结构如 Java堆(Heap),是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。 方法区(Method Area),方法区(Method Area)与Java堆 ...
分类:
编程语言 时间:
2018-07-31 19:29:11
阅读次数:
177
1.在JVM中有一块很重要的内容 内存管理 内存管理中又有 运行时数据区域 方法区(method area) || 虚拟机栈(VM stack) 本地方法栈 (native method stack) || 堆(heap) || 程序计数器(program counter register):程序一 ...
分类:
其他好文 时间:
2018-07-31 17:26:51
阅读次数:
136
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 栈区: 每个线程包含一个栈区,栈中只保存方法中(不包括对象的成员变量)的基础数据类型和自定义对象的引用(不是对象),对象都存放在堆区中 每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。 栈分 ...
分类:
编程语言 时间:
2018-07-18 20:31:10
阅读次数:
153
JAVA 内存管理总结 1. java是如何管理内存的 Java的内存管理就是对象的分配和释放问题。(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。 释放 :对象的释放是由垃圾回收机制决定和 ...
分类:
编程语言 时间:
2018-07-15 21:18:02
阅读次数:
168