您的位置:首页 > 编程语言 > Java开发

Java复习-hashmap和weakhashmap

2017-01-31 16:16 225 查看
    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)可以利用==运算符进行值判断。

int inta = 65;

float floata = 65.0f;

Integer intb = 65;

Float floatb = 65.0f;

//inta == floata根据值判断,结果是true

System.out.println("inta == floata:" + (inta == floata));

//inta == intb根据值判断,结果是true

System.out.println("inta == intb:" + (inta == intb));

//inta == floatb根据值判断,结果是true

System.out.println("inta == floatb:" + (inta == floatb));

String stra = "测试";

String strb = new String("测试");

String strc = new String("测试");

String strd = "测试";

//stra和strb指向不同的对象,结果是false

System.out.println("stra == strb:" + (stra == strb));

//stra和strd指向同一个对象,结果是true

System.out.println("stra == strd:" + (stra == strd));

//strb和strc指向不同的对象,结果是false

System.out.println("strb == strc:" + (strb == strc));

//strb和strc的值一样,结果是true

System.out.println("strb equals strc:" + (strb.equals(strc)));

//stra和strb的值一样,结果是true

System.out.println("stra equals strb:" + (stra.equals(strb)));

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐