Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6911240
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: Java

2013-03-14 22:46:40

原文地址:java 内存管理 作者:yfjelley

 堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理
栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享
编译器先处理int a = 3;首先它会在栈中创建一个变量为a的引用,然后查找栈中是否有3这个值,
如果没找到,就将3存放进来,然后将a指向3
接着处理int b = 3;在创建完b的引用变量后,因为在栈中已经有3这个值,便将b直接指向3
这样,就出现了a与b同时均指向3的情况。
这时,如果再令a=4;那么编译器会重新搜索栈中是否有4值,如果没有,则将4存放进来,
并令a指向4;如果已经有了,则直接将a指向这个地址。
 String是一个特殊的包装类数据。
可以用: String str = new String("abc"); String str = "abc"; 
两种的形式来创建,第一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会
创建一个新的对象。而第二种是先在栈中创建一个对String类的对象引用变量str,
然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令str指向”abc”,
如果已经有”abc” 则直接令str指向“abc”。       比较类里面的数值是否相
阅读(562) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~