易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

Java多线程: 生产者消费者问题(源码)

有人反映看不到源码,发现是CSDN的代码控件有问题。希望CSDN好好改进一下。
暂时先以文本方式发布出来,格式会变样。
import java.util.LinkedList;
public class ProducerConsumer
{
 /**
  * @param args
  */
 public static void main(String[] args)
 {
  Queue queue = ......

java自学点滴


String 与 StringBuffer区别:
String字符串对象是不可变的;StringBuffer是变长和可写的动态字符序列,可以自动地增加空间。
Integer var = new Integer();//有语法错误
Integer var = new Integer(2);//是对的
java的Vector成员是要用elementAt(i)成员函数来获得的,不能用ve[i]得到。
Vector::public Enumeration& ......

Java编程规范

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