JVM在内存中为变量分配存储单元

  1. Demo
  2. Analysis

Demo

public static void main(String[] args) {
    int n = 100;
    n = 200;
    int x = n;
    x = x + 100;

    System.out.println("x = " + x); // 300
    System.out.println("n = " + n); // 200
}

Analysis

执行 int n = 100 ,JVM在内存中为变量n分配一个 “存储单元”,填入值100;

      n

      │
      ▼
┌───┬───┬───┬───┬───┬───┬───┐
│   │100│   │   │   │   │   │
└───┴───┴───┴───┴───┴───┴───┘

执行 n = 200 ,JVM把200写入变量n的存储单元;

      n

      │
      ▼
┌───┬───┬───┬───┬───┬───┬───┐
│   │200│   │   │   │   │   │
└───┴───┴───┴───┴───┴───┴───┘

执行 int x = n ,JVM新分配一个存储单元给变量x,并写入和变量n一样的值200

      n           x

      │           │
      ▼           ▼
┌───┬───┬───┬───┬───┬───┬───┐
│   │200│   │   │200│   │   │
└───┴───┴───┴───┴───┴───┴───┘

执行 x = x + 100 ,JVM先计算 x + 100 ,然后将结果300写入x的存储单元。

      n           x

      │           │
      ▼           ▼
┌───┬───┬───┬───┬───┬───┬───┐
│   │200│   │   │300│   │   │
└───┴───┴───┴───┴───┴───┴───┘

他の者にできたか?ここまでやれたか?この先できるか?いいや、仆にしかできない!

目录
×

喜欢就点赞,疼爱就打赏