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. String stra = "测试";
  12. String strb = new String("测试");
  13. String strc = new String("测试");
  14. String strd = "测试";
  15. //stra和strb指向不同的对象,结果是false
  16. System.out.println("stra == strb:" + (stra == strb));
  17. //stra和strd指向同一个对象,结果是true
  18. System.out.println("stra == strd:" + (stra == strd));
  19. //strb和strc指向不同的对象,结果是false
  20. System.out.println("strb == strc:" + (strb == strc));
  21. //strb和strc的值一样,结果是true
  22. System.out.println("strb equals strc:" + (strb.equals(strc)));
  23. //stra和strb的值一样,结果是true
  24. System.out.println("stra equals strb:" + (stra.equals(strb)));
时间: 2024-12-20 15:32:48

Java复习-hashmap和weakhashmap的相关文章

[转]java 的HashMap底层数据结构

java 的HashMap底层数据结构 HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在.在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存.取value.下面就来分析HashMap的存取. 一.定义 HashMap实现了Map接口,继承AbstractMap.其中Map接口定义了键映射到值的规则,而AbstractM

java复习整理之集合

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.ios培训..Net培训</a>.期待与您交流!------ java复习整理之集合: Collection:集合中的最顶层接口,提供了一些操作集合的共性方法添加:boolean add(E e)boolean addAll(Collection<? extends E> c)删除:void

java 复习001

java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时默认是扩展为1.5倍 + 1个 ArrayList,LinkedList,Vector 区别 Vector内存扩展和ArrayList一样,不过Vector是默认扩展为2倍 Vector支持线程的同步,因此牺牲了访问性能 ArrayList,Vector都是使用数组实现,插入删除效率低 Linked

java中 HashMap和Hashtable,list、set和map 的区别

摘自: http://blog.chinaunix.net/uid-7374279-id-2057584.html HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许.HashMap把Hashtable的contains方法去掉了,改成contains

WeakHashMap学习(一) —— Difference between HashMap and WeakHashMap

WeakHashMap is an implementation of Mapinterface where the memory of the value object can be reclaimed by Grabage Collector if the corresponding key is no longer referred by any section of program. This is different from HashMap where the value objec

java集合-HashMap

java集合-HashMap HashMap基于哈希表的 Map 接口的实现,以 key-value 的形式存在.在 HashMap 中,key-value 总是会当做一个整体来处理,系统会根据 hash 算法来来计算 key-value 的存储位置,我们总是可以通过 key 快速地存.取 value.下面就来分析 HashMap 的存取. 一.定义 HashMap 实现了 Map 接口,继承 AbstractMap.其中 Map 接口定义了键映射到值的规则,而 AbstractMap 类提供

Java 集合系列 13 WeakHashMap

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

Java复习——多线程与并发库

开启一个线程 实现一个线程的方式有两种:继承Thread类.实现Runnable接口.这两种方法都需要重写Run方法,具体的线程逻辑代码写在Run方法中.其实Thread类就实现了Runnable接口,但是并没有什么说法是使用哪种方式存在效率高低的问题,推荐使用实现Runnable接口的方式,因为更加面向对象,而且实现一个接口比继承一个类更灵活.我们可以使用匿名内部类的方式很方便的开启一个线程(使用Tread类的start方法开启一个线程): Thread : new Thread(){ pub

java根据HashMap中的值将其元素排序

思路:HashMap或Map本身没有排序功能,若要进行较轻松的排序,可利用ArrayList中的sort方法 例子: import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; public class MapSorter { public static void main(String[] args)