| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 981 人关注过本帖
标题:对java内存分配的理解
只看楼主 加入收藏
xiao_2008
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-4-22
收藏
 问题点数:0 回复次数:2 
对java内存分配的理解
看了下很多高人的贴子,越来越发现java基础的重要性,看了几遍thinking in  java,大学时候看都是云里雾里,现出社会接触实践,对其中的内存分配有自己的一些理解,和一些疑惑,在此发表下自己的想法,理解有误,疑惑  请指点,感激

(1)寄存器  “寄存器的数量十分有限,所以寄存器是根据需要由编译器分配”引用《thinking in  java》的话,不知道怎么玩,什么情况下把东西放进去,放什么进去,实际项目没有用过

(2)堆栈(RAM)   1.保存一些java句柄,就是对象的引用,可以理解为c++里面的指针类似
                 2.也保存“不是用new 创建变量,而是创建一个并非句柄的“自动”变量。这个变量容纳了具体的值,并置于堆栈中”《thinking in  java》的话            
           如:Java代码
                A a=new A();
               A b=a;
               A c=a;//b,c就是引用,为句柄,所以就保存在堆栈区              
           如:Java代码
            int i=9;//类加载器动态加载的对象,所以就保存在堆栈区                 
              
(3)堆(RAM)   保存java对象 ,new 出来的对象,消耗时间

(4)静态存储(RAM) 保存静态的数据,但是 static 对象就类外
            如:Java代码
static int i=0;//保存在静态存储区   
static A a;//保存在堆区   

               static int i=0;//保存在静态存储区
               static A a;//保存在堆区
              

(5)常数存储(ROM)  final类型,保存在ROM,但是本人疑惑,fianl类型的对象保存在堆区还是 常数存储区呢??
           如:Java代码
final A a=new A();//保存在堆区? 常数存储区?   

                final A a=new A();//保存在堆区? 常数存储区?用了new ,但是也是final
              
(6)非RAM 存储  保存“流式对象”和“固定对象”我理解的是
                比如I/O流对象(流式对象)和数据库的Resultset(固定对象)
搜索更多相关主题的帖子: 内存 java 
2008-11-07 13:28
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
2008-11-07 18:12
kaizissl
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-7
收藏
得分:0 
经验要分享.....
2008-11-10 13:16
快速回复:对java内存分配的理解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023548 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved