我想知道下面的代码片段的内存使用含义。我的理解是,每个内存中只有一个实例会存储在内存中,而第二个缓存中的每一个实例都只会创建一个指针。如果创建一个指针需要占用多少空间?有没有什么方法可以监视下面例子中的JVM和内存使用情况?是否有必要实习uid?任何建议在下面将不胜感激。Biderectional缓存的内存使用含义
//Bidirectional Cache
HashMap<String, Long> cache1 = new HashMap<String, Long>();
HashMap<Long, String> cache2 = new HashMap<Long, String>();
//Some Random Test Data
for(int i = 0; i < 100000; i++){
Long id = new Long(i);
String uid = UUID.randomUUID().toString();
cache1.put(uid, id);
cache2.put(id , uid);
}
谢谢您的确认。确实,实习生在给定的片段中没有用处。这是被提及的,因为如果缓存进一步扩展。根据扩展的方法,可能会创建一个新的字符串uid,而不是通过指针共享,我将尽量避免使用它。 –