java中HashMap的原理分析
更新:HHH   时间:2023-1-7


这篇文章主要介绍java中HashMap的原理分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Java的特点有哪些

Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

1、原理分析

在HashMap中,put()方法行代码modCount++,这个代码一看就是线程不安全。

在扩展过程中取值不准确,HashMap的扩展将创建一个新的空数组,并将旧的项目填入新的数组,如果此时去取值,则可以获得null值。

2、实例

public class HashMapNotSafe {
 
    public static void main(String[] args) {
        final Map<Integer, String> map = new HashMap<>();
 
        final Integer targetKey = 65535; // 65 535
        final String targetValue = "v";
        map.put(targetKey, targetValue);
 
        new Thread(() -> {
            IntStream.range(0, targetKey).forEach(key -> map.put(key, "someValue"));
        }).start();
 
        while (true) {
            if (null == map.get(targetKey)) {
                throw new RuntimeException("HashMap is not thread safe.");
            }
        }
    }
}

以上是“java中HashMap的原理分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注天达云行业资讯频道!

返回编程语言教程...