标签: Java

416 篇文章

泛型与File-泛型与File中使用泛型的练习
package top.qaqaq.java.P567; /** * 定义一个 Employee 类。 * 该类包含:private 成员变量 name,age,birthday,其中 birthday 为MyDate 类的对象; * 并为每一个属性定义 getter, setter 方法; * 并重写 toString 方法输出 name, ag…
Collections工具类的使用
Collections工具类的使用 2. 常用方法 说明: ArrayList和HashMap都是线程不安全的,如果程序要求线程安全,我们可以将ArrayList、HashMap转换为线程安全的。 使用synchronizedList(List list) 和 synchronizedMap(Map map)
面试题:负载因子值的大小,对HashMap有什么影响
面试题:负载因子值的大小,对HashMap有什么影响 负载因子的大小决定了HashMap的数据密度。 负载因子越大密度越大,发生碰撞的几率越高,数组中的链表越容易长,造成查询或插入时的比较次数增多,性能会下降。 负载因子越小,就越容易触发扩容,数据密度也越小,意味着发生碰撞的几率越小,数组中的链表也就越短,查询和插入时比较的次数也越小,性能会更高。…
Map接口
Map接口 4.2 HashMap在jdk8中相较于jdk7在底层实现方面的不同: * 1. new HashMap():底层没有创建一个长度为16的数组 * 2. jdk 8底层的数组是:Node[],而非Entry[] * 3. 首次调用put()方法时,底层创建长度为16的数组 * 4. jdk7底层结构只有:数组+链表。jd…
泛型与File-复习
1. Map存储数据的特点是什么?并指明key,value,entry存储数据的特点。 双列数据,存储key-value对数据。 key:无序的、不可重复的 → Set 存储 value:无序的、可重复的 → Collection 存储 key-value:无序的、不可重复的 → Set存储 2. 描述HashMap的底层实现原理(jdk 8 版)…
HashMap源码解析(JDK11)
HashMap源码解析(JDK11) 概览 HashMap 根据 key 的 hashCode 值进行储存数据,大多数情况喜爱可以直接定位到他的值,因此有很快的访问速度遍历的顺序不确定,并且不能保证顺序不改变扩容是一个特别耗性能的操作,所以 在使用时可以先给一个大致的容量允许一条记录的 key 为 null,且允许多条记录的 value 为 nul…
Eclipse/IDEA工具里hashCode()的重写
以Eclipse/IDEA为例,在自定义类中可以调用工具自动重写equals和hashCode。问题:为什么用Eclipse/IDEA复写hashCode方法,有31这个数字? 选择系数的时候要选择尽量大的系数。因为如果计算出来的hash地址越大,所谓的 “冲突”就越少,查找起来效率也会提高。(减少冲突) 并且31只占用5bits,相乘造成数据溢出…
集合-Properties处理属性文件
package top.qaqaq.java.P558; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; /** * @author RichieZhang * @create 2022-10-27 下午 9:48 */…
集合-TreeMap两种添加方式的使用
package top.qaqaq.java.P557; import org.junit.jupiter.api.Test; import java.util.*; /** * @author RichieZhang * @create 2022-10-27 下午 9:21 */ public class TreeMapTest { //向Tre…
集合-Map接口及其多个实现类的对比、Map中存储的key-value的特点、HashMap在JDK7中的底层实现原理、HashMap在JDK8中的底层实现原理、HashMap在JDK7中的源码分析、HashMap在JDK8中的源码分析、LinkedHashMap的底层实现、Map中的常用方法1、Map中的常用方法2
package top.qaqaq.java.P548; import org.junit.jupiter.api.Test; import java.util.*; /** * |----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y =f(x) * |----HashMap:作为Map的主要实现类;线程不安全的,效…
集合-Set课后两道面试题
package top.qaqaq.java.P547; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.HashSet; import java.util.List; /** * @author RichieZhang * @creat…
集合-TreeSet的课后练习
package top.qaqaq.java.P546; /** * 定义一个 Employee 类。 * 该类包含:private 成员变量 name,age,birthday,其中 birthday 为MyDate 类的对象; * 并为每一个属性定义 getter, setter 方法; * 并重写 toString 方法输出 name, ag…
Collection子接口:Set接口
Collection子接口:Set接口 1. 存储的数据特点:无序的、不可重复的元素 2. 元素添加过程:(以HashSet为例) 我们向HashSet中添加元素a,首先调用元素a所在类的hashCode()方法,计算元素a的哈希值, 此哈希值接着通过某种算法计算出在HashSet底层数组中的存放位置(即为:索引位置),判断 数组此位置上是否已经有…