最新文章列表

Java的堆与栈(转)

1、先看下在JAVA中有以下六个区域可以存放数据(见《Java编程思想》):     1)寄存器(register)。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。      2)堆栈(stack)。位于通用RAM中,但通过它的“堆栈指针”可以从处理器哪 ...
JokerLinisty 评论(0) 有787人浏览 2015-02-28 17:01

JVM基础概念总结:数据类型、堆与栈

Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。   基本类型包括:byte, short, int, long, char, float, double, Boolean, returnAddress 引 ...
cngolon 评论(0) 有567人浏览 2015-02-26 22:08

Java基础之栈堆简介

  栈(stack)与堆(heap)是两种数据结构,其数据项均按序排列,即只能在一端对数据项进行插入、删除等操作。其中栈一般由编译器自动分配释放,用来存放方法的参数值、局部变量等数据,遵循先进后出(First-In/Last-Out)原则;堆则一般运行时分配,用来存放New出来的对象等数据,由JVM自动回收,遵循先进先出(First-In/First-Out)原则。   栈堆均存在缓存机制, ...
syyixin 评论(4) 有2192人浏览 2015-02-02 17:09

Java遍历树(深度优先+广度优先)

 在编程生活中,我们总会遇见属性结构,这几天刚好需要对树形结构操作,就记录下自己的操作方式以及过程。现在假设有一颗这样树,(是不是二叉树都没关系,原理都是一样的)   1、深度优先 英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。对于上面的例子来说深度优先遍历的结果就是:A,B,D,E,I,C ...
dyy_gusi 评论(3) 有18333人浏览 2014-12-02 19:03

JVM理论与实践【内存结构】

       学Java三年有余,对自己来说JVM一直以来都是黑匣子,看不懂,摸不透。作为一个有技术情节、略带些许完美主义情节的攻城狮,不了解JVM似乎 ...
Hello_Nick_Xu 评论(0) 有2017人浏览 2014-09-08 01:26

堆和栈的区别(转过无数次的文章)

一、预备知识—程序的内存分配   一个由C/C++编译的程序占用的内存分为以下几个部分   1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其   操作方式类似于数据结构中的栈。   2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回   收   。注意它与数据结构中的堆是两回事,分配方式倒是类似 ...
qsshuang 评论(0) 有349人浏览 2014-07-22 10:54

堆栈理解

1 内存分配策略   按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.   静态存储分配是指在编译时就能确 ...
谷熙亚 评论(0) 有593人浏览 2014-05-30 15:59

java虚拟机学习笔记(一)JVM的内存空间

   一,为什么要学JVM内存           java程序无需显示分配和回收内存,由jvm自动管理内存的分配及回收,给开发人员降低了编写程序的难度, 副作用是可能在不知不觉中浪费了很多内存, 导致jvm花费很多时间进行内存回收, 另外由于不清楚jvm内存的分配和回收机制, 有可能造成内存泄露. 因此jvm如何进行内存的分配和回收也是要关注的问题.       二, JVM内存的结构    ...
A牛哥哥 评论(0) 有1411人浏览 2014-02-19 11:36

优先队列与堆的学习

新入公司,管理比较严,机子上还没任何开发装备,不让自己装,没有权限,连个jar包都不让download,没事可做,闲得蛋疼,故作此篇。。。   介绍一个在线编译工具:http://www.compileonline.com/compile_java_online.php   转入正题(本文参考:http://jiangzhengjun.iteye.com/blog/565275,然后按照 ...
oham_一1一 评论(0) 有2934人浏览 2013-09-13 17:08

java大顶堆排序

  public class Heap{ // 构造堆 public static void shift(int a[], int i, int n) { a[0] = a[i]; for(int j=i*2;j<=n;j*=2){ if(j < n && a[j]<a[j+1]){j++;} if(a[0]<a[j] ...
weiliuhong1 评论(0) 有1291人浏览 2013-09-11 23:59

深度解析java内存原型

来源:chinaitlab 本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。 一、Java虚拟机内存原型 寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量非RAM存储:硬盘等永久存储空间。 二、常量池(constant ...
锋之弥漫 评论(0) 有734人浏览 2013-07-03 10:08

堆排序实现

前段时间在看侯捷的STL源码剖析,看到堆这一章顺带复习了一下堆排序,我们所说的堆一般指的是二叉堆,下面先来看下二叉堆的定义。 二叉堆定义 二叉堆是完全二叉树或是近似完全二叉树。 二叉堆满足两个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。   最大堆:父结点的键值总是大于或等于任 ...
dwljd 评论(0) 有772人浏览 2013-06-06 10:57

JAVA 文件编译执行与虚拟机(JVM)简单介绍

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算 ...
grefr 评论(0) 有1681人浏览 2013-05-21 16:42

大顶堆的实现

  小(大)顶堆的实现     1. 用数组表示二叉树   二叉树表示如下图:     用数组表示二叉树 2 3 4 6 8            A0            A1            A2            A3            A4   大顶堆特性 1. 子节点大于(小于)父节点 2. 如果父节点为 ...
 
ch_apm70 评论(0) 有922人浏览 2013-05-02 14:41

Java中堆和栈的区别(1)

堆和栈的区别 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java 的堆是一个运行 ...
wkf41068 评论(0) 有957人浏览 2013-03-24 16:07

C++中堆和栈的完全解析

C++中堆和栈的完全解析 内存分配方面: 堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样代码 中的delete语句才能正确的释放本内存空间。我们常说的内存泄露,最常见的就是堆泄露(还有资 ...
elviszhao 评论(0) 有1364人浏览 2013-03-14 12:50

1、java内存结构

一、理解   Java程序在运行时,需要在内存中分配空间。 为了提高运算效率,又对空间进行了不同区域的划分, 因为每一片区域都有特定的处理数 ...
豆豆咖啡 评论(0) 有883人浏览 2013-03-05 08:38

Java内存之"栈"与"堆"

        昨天中午,发了一篇equals和==区别的博文,晚上再看时有几位大牛指出了其中的一些错误,很感谢他们的留言,一句简简单单的留言给了我 ...
中南大宝 评论(28) 有13746人浏览 2013-01-29 01:47

堆排序算法

     所谓堆,是满足如下条件的一个序列:n个元素,任意第i个元素具备同时不比2i和2i+1个元素小或者大。把堆看成一个完全二叉树,那么这棵树所有左右子节点都要具备同时不比父节点小或者大。     从堆得定义可以看出序列的第一个元素,也就是堆顶元素一定是整个序列里最大或者最小的元素。堆排序就是利用了堆的这一特性来实现的。     堆排序可以简单文字描述如下:1.把一个无序序列调整成一个堆;2 ...
freshunter 评论(0) 有1142人浏览 2013-01-27 10:38

jvm与堆和栈-栈的"数据共享"-实例化String对象的两种方法

《Java程序员 上班那点儿事》第4章为大家讲述的是控制内存的功力。本节为容易被搞晕的--堆和栈。   4.2 容易被搞晕的--堆和栈 由于"堆"和"栈"这两个概念是看不见摸不着的东西,让很多程序员都整不明白是怎么回事,其实这两个概念也没有什么好研究的,因为堆和栈程序员根本没有办法控制其具体内容。 我们只需要了解一点,栈与堆都 ...
hejiajunsh 评论(0) 有1710人浏览 2013-01-24 16:37

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics