存储位置和内存分析.pdfVIP

  • 0
  • 0
  • 约3.45千字
  • 约 7页
  • 2017-06-02 发布于湖北
  • 举报
Java对象保存的地址 1.寄存器: 这是最快的保存区域,因为它位于和其他所有保存方 式不同 的地 方:处理器内部。然而,寄存器的数量 十分有限,所 以寄存器 是根据需要由编译器分 配。我们对此没有直接 的控制权,也不可能在自己 的程序里找到寄存器存在的任何 踪迹。 2.堆栈:驻留于常规RAM (随机访问存储器)区域,但可通过它的 “堆栈指针”获得处理的直接支持。这是一种特 别快、特别有 效的数据 保存方式,仅次于寄存器。创 建程序时, Java编译器必须准确地知道堆栈内保存的 所有数据的 “长 度”以及“存在时间”。这是由于它必须生 成相应的代码,以便向 上和向下移动指针。这一限制 无疑影响了程序的灵活性,所以 尽管有些Java数据要保存在堆栈里——特别是对象句柄,但Java 对象并不放到其中。 3.堆: 一种常规用途的内存池(也在RAM区域),其中保存了 Java对象 4.静态存储 : 这儿的 “静态” (Static)是指“位于固定位置” (尽 管也在 RAM里)。程序运行期间,静态存储的数据将随时等候调 用.可用static关键字指出一个对象的特定元素是静态的. 5.常数存储: 常数值通常直接置于程序代码内部。这样做是安全的, 因 为它们永远都不会改变 6.非RAM存储。若数据完全独立于一个程序之外,则程序不运行时仍可存 在,并在程序的控制范围之外。其中两个最主要的例子便是 “流式对象” 和 “固定对象”。 • public class Bank { • • public double s=; • public void chang(Bank _b1,Bank _b2) • { • Bank b3 = null; • b3 = _b1; • _b1= _b2 ; • _b2 = b3; • • _b1.s =4000f; • _b2.s =9000f; • } • public static void main(String[] args) • { • Bank b1 = new Bank(); • Bank b2 = new Bank(); • • System.out.println(b1=+b1); • System.out.println(b1.s =+b1.s); • System.out.println(b2.s =+b2.s); • chang(b1,b2); • System.ou

文档评论(0)

1亿VIP精品文档

相关文档