自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Java设计模式-Abstract Factory抽象工厂模式

Java设计模式-Abstract Factory抽象工厂模式概念为什么要使用抽象工厂模式具体实现抽象工厂模式的优缺点 概念 抽象工厂模式,是对工厂模式的进一步推广,对方法工厂模式进行抽象。就是围绕一个超级工厂去创建其他的工厂,和工厂模式一样,是属于一种创建型的设计模式,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 为什么要使用抽象工厂模式 存在即合理,每一种设计模式都是针对某个问题提供的一种解决方案,抽象工厂模式的意图就是提供一个创建一系列相关或相互依

2021-04-18 16:10:53 101

原创 Java常用设计模式-Factory工厂模式

Java常用设计模式-Factory工厂模式概念为什么要使用工厂模式工厂模式的优缺点使用方法工厂模式在JDK源码中的应用 概念 工厂模式是Java常用的设计模式之一,提供了创建对象的一种方式,创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 为什么要使用工厂模式 当我们需要创建多个对象,而且多个对象所拥有的方法都相同,只是具体的实现有些不同,那么这个时候可以直接创建一个接口让所有的子类去实现,然后都统一交给工厂类进行管理创建,开发人员只需要记住一个名字就可以获得对应的对象

2021-04-17 19:04:46 128

原创 Java常用设计模式-Singleton单例模式

Java常用设计模式-Singleton单例模式概念为什么会有单例模式单例模式优缺点编写一个单例模式的几种方式 概念 一个类在整个系统当中,只能出现一个全局访问点。 特点: 一个类只能提供一个实例对象 必须自己创建这个唯一的实例对象 必须自己给所有其他对象提供这个实例 为什么会有单例模式 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows

2021-04-17 16:46:06 101

原创 【jdk8源码】HashTable集合

【jdk8源码】HashTable集合概述继承关系数据结构成员变量构造方法扩容和hash计算常用方法 概述 HashTable和HashMap类似,底层都是使用数组+单向链表实现,只是HashMap中多了一个转化红黑树的过程。HashTable不允许键值为空、遍历时无序、键不可重复、线程安全(在常用方法介绍里面可以看到,基本的操作方法例如put()、remove()等都使用了synchronized同步修饰)。 继承关系 public class Hashtable<K,V> exten

2021-03-30 17:39:04 179

原创 【jdk8源码】HashMap集合阅读笔记

【jdk8源码】HashMap集合阅读笔记概述继承关系成员变量扩容和hash计算常用方法 概述 之前有讲到过两种List集合,ArrayList底层是使用数组实现的,LinkedList是使用双向链表实现的。HashMap更像是两者的结合,底层采用了数组+单向链表+红黑树的结构,HashMap的底层结构是一个数组(哈希桶),而数组的元素是一个单向链表,链表中的每一个节点对应了hash表中的每一个元素。当数组长度大于8的时候,就会转化为红黑树,以提升查询和插入的效率。特点是:遍历时无序、线程不安全。 继承关系

2021-03-28 22:02:47 2547 9

原创 【Java数据结构】红黑树学习笔记

【Java数据结构】红黑树概述二分查找法二叉树红黑树 概述 因为之前有准备写Java.util中的clloection集合类,最常见的就是List和Map,List中的ArrayList和LInkedList都已经总结完了,准备总结HashMap,jdk8中的HashMap底层结构是数组+单向链表+红黑树,关于红黑树的相关知识曾了解过,但也忘得差不多了,所以准备过一遍红黑树相关的知识,再总结HashMap的源码。 二分查找法 二叉树 红黑树 ...

2021-03-25 18:30:49 184

原创 【JDK8源码】java.lang.String类阅读笔记

【JDK8源码】java.lang.String类阅读笔记概述类的定义属性常见构造方法常用方法 概述 Java中用来创建和操作字符串的类,一个不可变的类。 类的定义 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { 刚刚上面说到String是一个不可变的类,这里可以看到String类是用final修饰的,是一个不可继承不可变的类 实现了Serial

2021-03-19 18:12:26 298 1

原创 【JDK8源码】java.lang.Oject类阅读笔记

【JDK8源码】java.lang.Oject类概述相关方法 概述 Java中所有类的祖先,Java中所有的类包括我们自己定义的一些类,都会显式或隐式的继承Object类,任何一个类都可以调用Object中的非私有方法。 相关方法 Object类中一共有12个方法,分别是: registerNatives():void private static native void registerNatives(); static { registerNatives(); }

2021-03-16 23:28:15 341 1

原创 【JDK源码】ArrayList集合

【JDK8源码】ArrayList集合ArrayList特性ArrayList数据结构源码分析层次结构属性常用方法 ArrayList特性 数据有序、可重复、可存放null值; 动态大小,集合长度自动增长; 泛型类,可以存放任意类型; 随机访问速度快,增删改速度慢(相对于LinkedList) ArrayList数据结构 ArrayList的底层数据结构是一个Object类型的数组,所有的操作都是基于数组实现。 源码分析 层次结构 总结如图 ArrayLit声明为ArrayList<

2021-03-15 11:41:26 554 4

原创 【JDK8源码】LinkedList集合

【JDK8源码】LinkedList集合LinkedList特性LinkedList数据结构源码分析层次结构属性构造函数常用方法循环 LinkedList特性 双向链表,增删快,随机访问慢(相对ArrayList) 泛型类,可存储任意类型 离散空间,不需要主动扩容 提供大量首尾操作的方法 LinkedList数据结构 private static class Node<E> { E item; Node<E> next; Node

2021-03-14 22:16:39 3872 14

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除