如图所示,地址为673061的内存单元是被JVM回收了!按道理来说,一维数组的内存空间肯定是连续的;
看你的代码,你似乎搞错了一个问题,你打印输出的是存在ArrayList中的字符串的hash值,也可以理解为存储的字符串在内存中的地址。但是 ArrayList 里面有个elementData[]数组,他的每个索引地址才是连续的一段存储单元,而这每个存储单元中存放的是所谓你打印输出的字符串的内存地址。下面给个图解:
感谢!也就是说我存储的是字符串常量,所以我打印出来的其实是字符串常量的地址,而不是数组每个String单元的地址。