摘要: NoSQL 是什么? NoSQL(Not Only SQL 的缩写)泛指非关系型的数据库,主要针对的是键值、文档以及图形类型数据存储。NoSQL 数据库天生支持分布式,数据冗余和数据分片等特性,旨在提供可扩展的高可用高性能数据存储解决方案。 一个常见的误解是 NoSQL 数据库或非关系型数据库不能很 阅读全文
posted @ 2023-04-02 15:08 残城碎梦 阅读(114) 评论(0) 推荐(0)
摘要: Java IO概览 Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。 InputStream / Reader:所有的输入流的基类,前者是字节输入流,后者是字符输入流。 OutputStream / Writer:所有输出流的基类,前者是字节输出流,后者是字符输出流。 I 阅读全文
posted @ 2023-04-02 13:46 残城碎梦 阅读(228) 评论(0) 推荐(0)
摘要: 给某一个对象提供一个代理,并由代理对象控制对真实对象的访问,代理模式是结构型设计模式的一种。 根据字节码文件的创建时机来分类,可以分为静态代理和动态代理。 静态代理 在程序运行前就已经存在代理类的字节码文件,代理类和被目标类的关系在运行前就确定了。 动态代理 代理类在程序运行期间由JVM根据反射等机 阅读全文
posted @ 2023-04-02 13:45 残城碎梦 阅读(49) 评论(0) 推荐(0)
摘要: 什么是SPI? SPI 的全名为 Service Provider Interface ,用于接口寻找服务实现类。 实现方式:标准制定者制定接口,不同厂商编写针对于该接口的实现类,并在jar的“classpath:META-INF/services/全接口名称”文件中指定相应的实现类全类名,开发者直 阅读全文
posted @ 2023-04-02 13:44 残城碎梦 阅读(78) 评论(0) 推荐(0)
摘要: ArrayList简介 ArrayList的底层数据结构是一维数组,而且是动态数组。与Java中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用 ensureCapacity 操作来增加ArrayList实例的容量。这可以减少递增式再分配的数量。 ArrayList 继承于 Abs 阅读全文
posted @ 2023-04-02 13:43 残城碎梦 阅读(35) 评论(0) 推荐(0)
摘要: ConcurrentHashMap概览 jdk1.7中是采用Segment + HashEntry + ReentrantLock的方式进行实现的,而1.8中放弃了Segment的设计,取而代之的是采用Node + CAS + Synchronized来保证并发安全进行实现。 JDK1.8的实现降低 阅读全文
posted @ 2023-04-02 13:42 残城碎梦 阅读(100) 评论(0) 推荐(0)
摘要: HashMap结构图 HashMap底层数据结构:Entry数组+链表+红黑树(JDK1.8版本) Entry+链表(JDK1.7版本) 这里简单说下红黑树的特点: 每个节点只有两种颜色:红色或者黑色 根节点必须是黑色 每个叶子节点(NIL)都是黑色的空节点 从根节点到叶子节点,不能出现两个连续的红 阅读全文
posted @ 2023-04-02 13:42 残城碎梦 阅读(112) 评论(0) 推荐(0)
摘要: 双向链表 单向链表只有一个方向,结点只有一个后继指针 next 指向后面的结点。而双向链表,顾名思义,它支持两个方向,每个结点不止有一个后继指针 next 指向后面的结点,还有一个前驱指针 prev 指向前面的结点。 从上图中可以看出来,双向链表需要额外的两个空间来存储后继节点和前驱结点的地址。所以 阅读全文
posted @ 2023-04-02 11:05 残城碎梦 阅读(120) 评论(0) 推荐(0)