易截截图软件、单文件、免安装、纯绿色、仅160KB

java 栈与堆 今天真是学习了!!

出处:来源于CSDN ZangXT大虾对某篇关于java中栈与堆的文章的回复
大体分析一下
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。
//栈都是由运行环境来处理的,这点C++和java没有什么不同.对于堆,不过java多了个GC.
2.这里的堆和栈首先要明确是虚拟机栈,和寄存器根本不是一个级别的东西,就别比较了.
3.栈数据共享好像是作者自己创造的概念.而且给基本类型也引入了"引用"的概念,不知道出于何种打算.
java虚拟机规范中说:Primitive values do not share state with other primitive values. A variable whose type is a primitive type always holds a primitive value of that type.
看一下实际的处理情况:
      int a=3;
      int b=3;
      int c=65535;
      int d=65535;
      int e=32330;
      int f=32330;
看对应的虚拟机指令,可以知道变量里实际存储的是什么:
Code:
  0:        iconst_3  //3
  1:        istore_1
  2:        iconst_3  //3
  3:        istore_2
  4:        ldc        #2; //int 65535
  6:        istore_3
  7:        ldc        #2; //int 65535
  9:        istore        4
  11:        sipush        32330
  14:        istore        5
  16:        sipush        32330


相关文档:

JVM详解之Java垃圾回收机制详解和调优 (2)

 3.Sun HotSpot
  1.4.1 JVM堆大小的调整
  Sun HotSpot 1.4.1使用分代收集器,它把堆分为三个主要的域:新域、旧域以及永久域。Jvm生成的所有新对象放在新域中。一旦对象经历了一定数量的垃圾收集循环后,便获得使用期并进入旧域。在永久域中jvm则存储class和method对象。就配置而言,永久域是一个独立域并且不 ......

JVM详解之Java垃圾回收机制详解和调优 (3)

 5.如何从JVM中获取信息来进行调整
  -verbose.gc开关可显示gc的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等。打开- xx:+ printgcdetails开关,可以详细了解gc中的变化。打开-XX: + PrintGCTimeStamps开关,可以了解这些垃圾收集发生的时间,自jvm启动以后以 ......

*成为Java高手的25个学习要点*

 1. 你需要精通面向对象分析与设计(OOAOOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是class、object、interaction以及statediagrams.   2. 你需要学习Java语言的基础知识以及它的核心类库(collections、serialization、streams、networking、multithreading、reflection、event、handling、N ......

Java编程规范

 package的命名 package 的名字由全部小写的字母组成,例如:cn.mybole。
class和interface的命名 class和interface的名字由大写字母开头而其他字母都小写的单词组成,例如:Person,RuntimeException。
class变量的命名 变量的名字用一个小写字母开头,后面的单词用大写字母开头,例如:index,currentImage。
clas ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号