Java程序运行时数据存储位置

 

  1. 寄存器: 这是最快的存储区, 但是寄存器的数量极其有限, 所以寄存器根据需求进行分配, 而且不能直接控制.
  2. 堆栈: 位于通用的RAM(随机访问存储器), Java系统必须知道存储在堆栈内所有项的确切生命周期, 以便上下移动堆栈指针. 这一约束限制了程序的灵活性,所以虽然某些Java数据存储于堆栈中, 基本数据类型的变量数据也存储于这里, 特别是对象的引用, 但是Java对象并不存储于其中.数组的引用保存在栈中,同时实例的时候在堆中开辟连续空间,栈中的空间指向堆的首地址. 栈有一个很重要的特殊性,就是存在栈中的数据可以共享.
  3. : 一种通用的内存池(也位于RAM区), 用于存放所有的Java对象. 堆不同于堆栈的好处是编译器不需要知道存储的数据在堆里存活多久.
  4. 方法区: 所有对象数据共享区域,存储静态变量和普通方法、静态方法、常量、字符串常量(严格说存放在常量池,堆和栈都有).
  5. 非RAM存储: 如果数据完全存活于程序之外, 那么它可以不受程序的任何控制. 其中两个基本的盒子是流对象和持久化对象. 这种存储方式的技巧在于把对象转化成可以存放在其它媒介上, 在需要时可恢复成常规的, 基于RAM的对象. Java提供了对轻量级持久化的支持, 如JDBC和Hibernate.

转载于:https://www.cnblogs.com/jin12/p/5504436.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值