没懂!
我看了下p126页。感觉这小节的概念有点纽扣。我基于最原始的两个概念来理解这小节完全行得通。
1、p1=((接口)值类型p)。这句代码实际上将p装箱为引用类型并存储在p1上,过程上将p复制一份(记为p2)并将引用传递给p1。p与p2属于不同的两个副本。这时对p2的引用p1调用change只是针对p2副本,p1的值不会有改变。(书本上的代码为((接口)值类型p),即没有保存p1这个临时引用变量,所以在调用完其change后,因为已经没有成员对p1有引用所以就直接释放了)----垃圾回收是遍历每个对象,若没有被引用就释放
2、o1=((接口)引用类型o)。这句代码实际上是o引用类型封装为(因为是引用类型所以不会发生装箱)接口然后将引用传递给o1,o实际存储的对象记为o2,此时o与o1都为引用同一个对象o2的两个变量,所以对o1的改变会反映在o上(书本上的代码为((接口)引用类型o),尽管没有保存o1变量,但是其实际开销对象o2和变量o是引用同一个对象,所以不会回收对应的对象)
悟性贫贫,不能参透 楼主的意思。
垃圾回收机制,有自己的运行安排。没有固定的时间。
你也不知道垃圾回收机制什么时候运行
不知道什么时候运行的,lz看看gc回收原理就明白了