首页 > 代码库 > Java复习-hashmap和weakhashmap

Java复习-hashmap和weakhashmap

    hashmap的key值和value值是强引用,意味着hashmap对象不被销毁的时候,里面的键值对是不会被销毁的,然而weakhashmap的话,当里面的键值对没有被销毁的时候的话可能被Java回收机制自动销毁

WeakHashMap whm=new WeakHashMap<>();
whm.put(new String("php"), "75元");
whm.put(new String("java"), "90元");
System.gc();
System.runFinalization();
System.out.println(whm);
HashMap whm1=new HashMap();
whm1.put(new String("php"), "75元");
whm1.put(new String("java"), "90元");
//强制系统进行垃圾回收
System.gc();
System.runFinalization();
System.out.println(whm1);

{}
{php=75元, java=90元}

Java中判断两个变量是否相等有两种方式:一种是利用==运算符,另一种是利用equals方法。如果变量是基本类型,那么使用==和使用equals会得到相同的结果,都是判断变量的值是否相对。如果变量是引用类型,==运算符判断变量是否指向同一引用对象,equals判断变量"值"是否相等。Java值类型对应的包装类(Boolean、Byte、Short、Integer、Long、Float、Double、Charcater)可以利用==运算符进行值判断。

 


 

  1. int inta = 65;  
  2. float floata = 65.0f;  
  3. Integer intb = 65;  
  4. Float floatb = 65.0f;  
  5. //inta == floata根据值判断,结果是true  
  6. System.out.println("inta == floata:" + (inta == floata));         
  7. //inta == intb根据值判断,结果是true  
  8. System.out.println("inta == intb:" + (inta == intb));  
  9. //inta == floatb根据值判断,结果是true  
  10. System.out.println("inta == floatb:" + (inta == floatb));  
  11.   
  12. String stra = "测试";  
  13. String strb = new String("测试");  
  14. String strc = new String("测试");  
  15. String strd = "测试";  
  16. //stra和strb指向不同的对象,结果是false  
  17. System.out.println("stra == strb:" + (stra == strb));  
  18. //stra和strd指向同一个对象,结果是true  
  19. System.out.println("stra == strd:" + (stra == strd));  
  20. //strb和strc指向不同的对象,结果是false  
  21. System.out.println("strb == strc:" + (strb == strc));  
  22. //strb和strc的值一样,结果是true  
  23. System.out.println("strb equals strc:" + (strb.equals(strc)));  
  24. //stra和strb的值一样,结果是true  
  25. System.out.println("stra equals strb:" + (stra.equals(strb)));  
  26. 技术分享

     

Java复习-hashmap和weakhashmap