- 博客(12)
- 收藏
- 关注
原创 HashMap put源码分析
HashMap put源码分析HashMap 采用的是 数组 + 链表 + 红黑树的结构 public V put(K key, V value) { // 根据key计算hash值 return putVal(hash(key), key, value, false, true); }final V putVal(int hash, K key, V value, boolean onlyIfAbsent, bo
2022-03-03 14:01:38
175
原创 日历 小Demo (LocalDate的使用)
日历小Demo(LocalDate使用)import java.time.DayOfWeek;import java.time.LocalDate;public class CalendarTest { public static void main(String[] args) { // 年日历 LocalDate date = LocalDate.now(); int dayOfYear = date.getDayOfYear(); // 得到当年开始日期 date = d
2021-12-30 16:05:25
220
原创 Chain of Responsibility Pattern(责任链模式)
Chain of Responsibility Pattern(责任链模式)介绍责任链模式为请求创建了一个接收者对象的链。 让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。相当于有一个请求 分别 沿着 A,B,C传递,直到某一个或者全部处理请求为止。这种类型的设计模式属于行为型模式。优点:将请求的发送者和接收者解耦,降低耦合度简化了对象。对象不需要知道链的结构增强给对象指派职责的灵活性,每一个对象有其对应的责任,可以通
2021-11-24 15:49:05
125
原创 Decorator(装饰者模式)
Decorator(装饰者模式)介绍装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结钩, 动态地给一个对象添加一些额外的职责。就相当于一个 女生 给自己 化妆,戴饰品,并不会改变其本身是一个女性的特点,又修饰了自身这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装优点: 装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。缺点: 多层装饰比较复杂。注意:
2021-11-23 14:53:38
355
原创 Mediator(中介者模式)
Mediator(中介者模式)介绍中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性,用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式属于行为型模式。优点:降低了类的复杂度,将一对多转化成了一对一各个类之间的解耦符合迪米特原则缺点: 中介者会庞大,变得复杂难以维护实现1、创建聊天室public class ChatRoom {
2021-11-22 11:13:10
243
原创 Facade(外观模式/门面)
Facade(外观模式/门面)介绍外观模式(Facade Pattern)隐藏系统的复杂性,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口。这种类型的设计模式属于结构型模式,涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。优点:解耦, 减少系统相互依赖提高灵活性、安全性缺点:不符合开闭原则,如果要改东西很麻烦,继承
2021-11-22 10:15:15
400
原创 Factory(工厂模式)和 Abstract Factory Pattern (抽象工厂模式)
Factory(工厂模式)介绍工厂模式:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 是 Java 中最常用的设计模式之一,这种类型的设计模式属于创建型模式 。优点:一个调用者想创建一个对象,只要知道其名称就可以了扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。屏蔽产品的具体实现,调用者只关心产品的接口。缺点:每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了
2021-11-19 17:26:15
237
原创 Strategy(策略模式)
Strategy(策略模式)介绍策略模式中,一个类的行为或算法可以在运行时更改,互相替换。这种类型的设计模式属于行为型模式。相当于对 if…else 或 switch 进行封装优点:可扩展性良好避免使用多重条件判断算法或类的行为 可以自由切换缺点:策略类会增多所有的策略类都需要对外暴露注意事项:如果一个系统的策略多于四个,就需要考虑使用 混合模式,解决策略类膨胀的问题。实现:1、创建一个接口public interface ShoutS
2021-11-18 16:21:51
257
原创 Git常用命令以及 与Idea集成
Git常用命令以及 与Idea集成git 本地结构本地仓库与远程仓库的交互git常用命令1、本地仓库查看版本git --version设置用户名和邮箱git config --global user.name "用户名"git config --global user.email "邮箱"本地仓库初始化git init将文件提交到暂存区git add [文件名]将暂存区的内容提交到本地仓库git commit -m "提交信息" [提交文件]查看工作区和暂存区
2021-11-17 17:53:31
112
原创 Singleton(单例模式)
Singleton(单例模式)饿汉模式(常用)/** * 饿汉模式 (常用) * 以空间换时间 不管需不需要用到实例都要去创建实例 * 原理:类加载到内存后,就实例化一个单例,JVM保证线程安全 * 缺点:不管有没有用到,加载类的时候都会创建一个实例 */public class Mgr1 { private final static Mgr1 INSTANCE = new Mgr1(); private Mgr1() {} public void metho
2021-11-12 10:09:39
382
原创 Java:程序包xxxx不存在方案总结
Java:程序包xxxx不存在方案总结Idea 开启自动加载Jar包 ,开启了自动引入机制根据路径选择 Maven 设置: File -> Settings -> Build,Execution,Deployment -> Maven -> Importing设置完成后点击【Apply】使之生效。...
2021-07-29 20:02:07
233
原创 JDK1.8的详细安装
JDK安装1、下载http://www.oracle.com/technetwork/java/index.html2、安装傻瓜式安装,下一步测试:打开cmd窗口输入 java -version3、设置环境变量先打开:此电脑→属性→高级系统设置→高级→环境变量3.1、 新建系统变量JAVA_HOME3.2、编辑系统变量Path3.3、新建系统变量CLASSPATH变量4、测试打开cmd窗口输入java,若出现用法则安装成功输入javac,
2020-11-27 22:43:07
109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人