摘要: 不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存储回内存,这个过程可能会出现多个线程交差从而导致值的不正确。 阅读全文
posted @ 2022-02-25 20:47 摘星丶仙 阅读(111) 评论(0) 推荐(0) 编辑
摘要: lnteger对象会占用更多的内存。Integer是一个对象,需要存储对象的元数据。但是 int是一个基本数据类型的数据,所以占用的空间更少。 阅读全文
posted @ 2022-02-25 19:39 摘星丶仙 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 安全性 Hashtable是线程安全,HashMap是非线程安全。 HashMap的性能会高于Hashtable,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下可以使用Hashtable. 是否可以使用null作为key Hashtable不允许null作为 key, 而HashM 阅读全文
posted @ 2022-02-25 19:37 摘星丶仙 阅读(31) 评论(0) 推荐(0) 编辑
摘要: Collection是一个接口,它是 Set、List等容器的父接口; Collections是个一个工具类,提供了一系列的静态方法来辅助容器操作,这些方法包括对容器的搜索、排序、线程安全化等等。 阅读全文
posted @ 2022-02-25 18:44 摘星丶仙 阅读(10) 评论(0) 推荐(0) 编辑
摘要: ArrayList查询速度比LinkedList要快. 相对于ArrayList , LinkedList插入和删除是更快的。 LinkedList需要更多的内存, 阅读全文
posted @ 2022-02-25 12:24 摘星丶仙 阅读(7) 评论(0) 推荐(0) 编辑
摘要: “==”操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用“==”操作符。 如果a和 b都是对象,则 a==b 是比较两个对象的引用。。 equals方法是用于比较两个独立对象的内容是否相同,就好比去比 阅读全文
posted @ 2022-02-25 11:43 摘星丶仙 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 简单的来讲 HashCode 就像是一个签名,当两个对象的 Hashcode一样的时候,两个对象就可能一样,但如果Hashcode不一样,那么肯定不是同一个对象。相当于先确定一个大的范围,再用equals去比较。 hashcode可以减少equals 比较的次数,提高运算效率。(equals方法效率 阅读全文
posted @ 2022-02-24 23:31 摘星丶仙 阅读(17) 评论(0) 推荐(0) 编辑
摘要: final是一个修饰符,可以修饰变量、方法和类。如果 final修饰变量,意味着该变量的值在初始化后不能被改变。 finally是一个关键字,与try和 catch一起用于异常的处理。finally块一定会被执行,无论在 try块中是否有发生异常。 finalize方法是在对象被回收之前调用的方法, 阅读全文
posted @ 2022-02-24 19:22 摘星丶仙 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 什么条件下扩容? HashMap中最主要的数据结构是数组,一般情况下HashMap的元素是方数组上的。如果数组已经有元素,那么就发生了Hash 冲突,那么就会使用链表或红黑树的结构进行存储。 当然HashMap 中数组的默认大小是16,如果不断的插入元素,那么Hash冲突就会很频繁,所以这个时候就需 阅读全文
posted @ 2022-02-24 17:58 摘星丶仙 阅读(109) 评论(0) 推荐(0) 编辑
摘要: HashMap的数据结构 JDK1.7及之前HashMap底层是数组和链表 JDK1.8及以后HashMap底层是数组和链表以及红黑树 JDK1.8什么时候链表会转化成红黑树? HashMap在元素比较少的时候,也只会有数组+链表的结构。当链表的长度大于8,HashMap可能会做树化(链表转变成红黑 阅读全文
posted @ 2022-02-24 17:17 摘星丶仙 阅读(55) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示