• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小不点儿大的由我做主!
流年似水!
博客园    首页    新随笔    联系   管理    订阅  订阅

《Thinking in JAVA》之java的数据存储

java有六个地方可以存储数据;
1.寄存器:这是最快的存储区,因为它位于不同于其他存储区的地方—处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器的存在的任何迹象。
2.堆栈:创建程序时,java编译器必须知道存储在堆栈内所有数据的确切大小和生命周期,因为它必须生成相应的代码,以便上下移动堆栈指针。这一约束限制了程序的灵活性,所以虽然某些Java数据存储于堆栈中—特别是对象引用,但是Java对象并不存储于其中。
3.堆:一种通用的内存池(位于RAM区),用于存放所有的Java对象。堆不同于堆栈的好处是:编译器不需要知道要从堆里分配多少存储区域,也不必知道存储的数据在堆里存活多长时间。当执行用new创建的对象时,会自动在堆里进行存储分配。当然,用堆进行存储分配比用堆栈进行存储分配需要更多的时间。
4.静态存储:静态存储里存放程序运行时一直存在的数据。可用关键字static来标识某个对象的特定元素是静态的,但java对象本身不会存放在静态存储空间里。
5.常量存储:通常直接存放在程序代码内部。
6.非RAM存储:如果数据完全戚于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。两个基本的例子是”流对象“和”持久化对象“。
posted @ 2008-10-09 16:52  小不点儿大的由我做主!  阅读(145)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3