Java基础
文章平均质量分 99
Java的基础,诸如HashMap源码,泛型等等
youthlql
如果图片显示有问题请看置顶文章
展开
-
HashMap-JDK8源码讲解及常见面试题
文章目录数据结构红黑树为什么要引入红黑树Node类TreeNode类重要参数构造函数源码tableSizeFor()put源码hash()resize()get源码---下面是常见面试题---HashMap在JDK7和8中区别?为什么不直接用hash码作为数组table的下标?为什么容量要求为2的幂?二次扰动的好处什么样类型的数据适合做hashmap的key?为什么选择8作为树化阈值?为什么选择6和8作为链表化和树化的阈值? 1、文章可能会优先更新在Github,个人博客,公众号【Github有】。其它平原创 2020-11-23 19:14:40 · 1259 阅读 · 0 评论 -
HashMap-JDK7源码详解
1、HashMap是散列表的一种,HashMap本身采用数组来进行储存。同时HashMap采用拉链法来解决hash冲突,拉链法就是通过链表来解决hash冲突。所以说整体上来看,HashMap采用的数据结构=数组(主)+单链表(副)大致是这样的一个结构每个链表就算哈希表的桶(bucket)链表的节点值就算一个键值对构造函数源码先贴一下,后面参数介绍会使用到。init();}下面的代码有些顺序和源码可能不太一样,仅仅是顺序,笔者是为了更好的阅读体验/*名词介绍。...原创 2020-11-23 19:12:20 · 1492 阅读 · 1 评论 -
Java8常用新特性详解
只包含一个抽象方法的接口,称为函数式接口。你可以通过Lambda表达式来创建该接口的对象。(若Lambda表达式抛出一个受检异常(即非运行时异常),那么该异常需要在目标接口的抽象方法上进行声明)。我们可以在一个接口上使用注解,这样做可以检查它是否是一个函数式接口。同时javadoc也会包含一条声明,说明这个接口是一个函数式接口。在java.util.function包下定义了Java8的丰富的函数式接口/***自定义函数式接口Stream到底是什么呢?Stream。...原创 2020-11-23 19:08:27 · 2284 阅读 · 0 评论 -
万字文详解Java泛型
1、泛型的本质是为了参数化类型,也就是在在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型,很明显这种方法提高了代码的复用性。2、泛型的引入提高了安全性,泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。。3、在没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。returnt;*不指定类型泛型擦除。和1。...原创 2020-11-23 19:05:22 · 6024 阅读 · 0 评论