摘要: 1.stream Map() FlatMap()区别 map: 对于Stream中包含的元素使用给定的转换函数进行转换操作,新生成的Stream只包含转换生成的元素。 flatMap:和map类似,不同的是其每个元素转换得到的是Stream对象,会把子Stream中的元素压缩到父集合中。 下面这张图 阅读全文
posted @ 2019-11-23 23:50 _绵绵 阅读(177) 评论(0) 推荐(0)
摘要: 第四条:通过私有构造器强化不可实例化的能力 java.lang.Math,java.util.Arrays这种工具类无需实例化,因为毫无意义,但是在缺少显式构造器的情况下,编译器会自动构建一个公有的无参构造器,这些工具类可能会在无意识的情况下被实例化,或是被继承,并且,企图将这种类做成抽象类限制实例 阅读全文
posted @ 2019-10-02 18:05 _绵绵 阅读(227) 评论(0) 推荐(1)
摘要: 第一条:静态工厂方法代替构造器 静态工厂方法是返回一个类的实例的静态方法(此处介绍的静态工厂方法并不对应设计模式中的工厂模式),例:基本类型boolean转化为包装类: 提供静态工厂方法而不是构造方法的优势: 静态工厂方法的缺点: 第二条:遇到多个构造器参数时考虑使用构建器 构建器解决了构造器和静态 阅读全文
posted @ 2019-10-02 16:25 _绵绵 阅读(247) 评论(0) 推荐(0)
摘要: 问题背景 使用多渠道给用户发送短信,但入口只有一个,并且以后可能会摒弃或扩展渠道,所以使用继承来实现。 首先父类接口Sender定义发送短信等一些基础公共方法,主要如下: 各渠道作为子类继承Sender接口,实现基础方法,如下: 在发送短信时,需要得到渠道的集合,从中选择一个发送短信,此处就用到了A 阅读全文
posted @ 2019-09-15 00:20 _绵绵 阅读(523) 评论(0) 推荐(0)
摘要: JDK1.7之后,引入了try-with-resources,使得关闭资源操作无需层层嵌套在finally中,代码简洁不少,本质是一个语法糖,能够使用try-with-resources关闭资源的类,必须实现AutoCloseable接口。 1.7版本之前,传统的关闭资源操作如下: 可以看到,为了确 阅读全文
posted @ 2019-09-01 12:30 _绵绵 阅读(6979) 评论(0) 推荐(3)
摘要: 上周接到了一个需求,主要就是解析日志,缓存中记录对用户某一特定操作的状态、结果、操作时间等,目的是直观展示,方便查询。 一个用户每天会产生多条记录,一天大概有几百万条记录,需求方不要求查询全部,只要近期就可以。 我想得很单纯,这个数据结构不复杂,key由前缀+用户ID+操作时间时间戳组成,可以保证唯 阅读全文
posted @ 2019-08-10 15:14 _绵绵 阅读(935) 评论(2) 推荐(1)
摘要: 了解了HashMap底层实现原理后,很容易的能推导出HashMap元素插入的步骤,先计算元素hash值,然后mod哈希表长度得到应存入的桶的下标,最后挂链,看一下源码。 HashMap插入元素主要步骤解析我已用注释说明,应该不难看懂,这里还想说一下的是onlyIfAbsent这个变量,这个变量表示的 阅读全文
posted @ 2019-07-28 17:14 _绵绵 阅读(1109) 评论(1) 推荐(0)
摘要: 一.哈希表 本文首先介绍一下哈希表,因为要解析HashMap,理解其内部结构以及原理,不得不提到哈希表。 哈希表是根据关键值key直接进行数据访问的数据结构,其本质是一个数组,数组的每一个元素为一个“桶”,桶中存放键值对。其存储过程是根据每个数据通过哈希函数计算的哈希值决定其存放的桶的下标。若桶中存 阅读全文
posted @ 2019-07-20 23:52 _绵绵 阅读(628) 评论(0) 推荐(1)
摘要: 主要从以下几个方面介绍: 一.ArrayList扩容机制 ArrayList实现List接口,底层为一个可以调节长度的数组,主要成员变量如下。 ArrayList有三种构造方法: 1.默认构造方法 可以看到返回一个空列表,elementData为一个空数组,长度为0,实际上第一次长度为10的扩容并不 阅读全文
posted @ 2019-07-14 11:56 _绵绵 阅读(227) 评论(0) 推荐(0)
摘要: 一.函数式接口 函数式接口是有且仅有一个抽象方法,但可以有多个非抽象方法的接口 满足以下条件的接口为函数式接口 1. 使用@FunctionalInterface注释,满足@FunctionalInterface注释的约束 2. 没有使用@FunctionalInterface注释,但满足@Func 阅读全文
posted @ 2019-01-20 21:06 _绵绵 阅读(173) 评论(0) 推荐(0)