Discuss / Java / 功课

功课

Topic source


names[1] 指向的是 字符串对象"XYZ"  的内存位置 此时字符串 s 赋值 names[1] 是s指向了name[1]指向的内存位置   然后name[1] 指向新的指针地址的时候,不改变s的存储的指针地址。

     names
      │
      ▼
┌───┬───┬───┬───┬
│   │ABC│XYZ│zoo│ 
└───┴───┴───┴───┴

执行names[1] = "cat";时,它指向一个新的内存位置:

         names[1] = "cat";

     names[1] ────────────────┐
                              │
                              ▼
┌───┬───┬───┬───┬───┬───┬───┬───┬
│   │ABC│XYZ│zoo│   │   │   │cat│
└───┴───┴───┴───┴───┴───┴───┴───┴
     s ┐
       │
       ▼                       
┌───┬───┬───┬───┬───┬───┬───┬───┬
│   │ABC│XYZ│zoo│   │   │   │cat│
└───┴───┴───┴───┴───┴───┴───┴───┴

但是,原有字符串变量s存储的内存位置 并不因为name[1]的修改而修改,只是无法通过names[1]引用到它而已。


  • 1

Reply