Java容器类库中的Map接口(java\util\Map.java)中有一个Entry接口(java\util\Map.java),其中有几个接口方法用到了类和类的按位与操作,即类和类之间有 & 操作符,后面是一个lambda表达式,如下图: 源码如下: public static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> comparingByKey() { r…
private static Calendar createCalendar(TimeZone zone,Locale aLocale) { CalendarProvider provider = LocaleProviderAdapter.getAdapter(CalendarProvider.class, aLocale) .getCalendarProvider(); if (provider != null) { try { return provider.getInstance(zon…
一.HashMap (1) 简介:java1.8版本之前HashMap的结构图如下: 数组的每个元素都是一个单链表的头节点,链表是用来解决冲突的,如果不同的key映射到了数组的同一位置处,就将其放入单链表中.但这就存在一个问题:在一个链表中查找一个节点时,将会花费O(n)的查找时间,会有很大的性能损失,所以在JDK1.8后,当同一个hash值的节点数不小于8时,不再采用单链表形式存储,而是采用红黑树,结构图如下: HashMap在底层将key-value当成一个整体进行处理,这个整体就是一个No…
HashMap public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>, Cloneable, Serializable { } 1. 一些重要参数 1.1 serialVersionUID属性 // 序列化版本号 private static final long serialVersionUID = 362498820763181265L; serialVersionUID适…
转载:https://mp.weixin.qq.com/s/h88UxB9F2MkTbHqck3KQiQ 一.结构性模式: 1.适配器模式: 常用于将一个新接口适配旧接口 肥朝小声逼逼:在我们业务代码中经常有新旧接口适配需求,可以采用该模式. 2.桥接模式: 将抽象和抽象的具体实现进行解耦,这样可以使得抽象和抽象的具体实现可以独立进行变化. 肥朝小声逼逼:这个模式,其实我们每天都在用到,但是你可能却浑然不知.只要你用到面向接口编程,其实都是在用桥接模式. 3.组合模式 让客户端看起来在处理单个对…
1.“拖泥带水”的删除 测试代码: package com.demo; import java.util.ArrayList; public class TestArrayList { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<String> arylist = new ArrayList<String>(); arylist.add("aa&…
public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable 枚举类存在于java.lang包中,是一个抽象类,实现了Comparable<E>和Serializable接口,说明,枚举实例可以进行比较,实现Seriaalizable接口的目的是在反序列化时不会重新创建一个新的对象. Enum是所有java程序中定义的枚举类的公共基类,更多关于枚举的信…
ConcurrentHashMap public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable { ... } 1. 一些重要参数 1.1 MAXIMUM_CAPACITY参数 /** * The largest possible table capacity. This value must be * exactly 1…
一 概述 StringBuffer类被 final 所修饰,不能被继承,StringBuffer继承了AbstractStringBuilder类, 是一个可变的字符序列,并且类中方法都有synchronized修饰,实现了线程安全 StringBuilder类也被final修饰,继承了AbstractStringBuilder类,与StringBuffer区别是没有实现线程安全,方法逻辑都是调用的父类方法逻辑 二 StringBuffer源码解析 大部分方法都调用super父类逻辑,所以这里只…
结构型模式: 适配器模式: 用来把一个接口转化成另一个接口. java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) javax.xml.bind.annotation.adapters.XmlAdapter#marshal() javax.xml.bind.annotation.…