设计模式:装饰者模式 装饰者模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 装饰器模式通过将对象包装在装饰器类中,以便动态地修改其行为。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 介绍动态地给一个对象添加额外的职责,同时不改变其结构。装饰器模式 2024-06-07 设计模式 > 结构型模式 #设计模式
设计模式七大原则 设计模式七大原则 单一职责原则(类和方法,接口) 开闭原则 (扩展开放,修改关闭) 里氏替换原则(基类和子类之间的关系) 依赖倒置原则(依赖抽象接口,而不是具体对象) 接口隔离原则(接口按照功能细分) 迪米特法则 (类与类之间的亲疏关系) 合成复用原则 单一职责原则单一职责原则(SRP:Single responsibility principle)又称为单一功能原则: 它规定一个类应该只负责一 2024-04-25 设计模式 #设计模式
设计模式:代理模式 代理模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 介绍意图:为其他对象提供一种代理以控制对这个对象的访问。 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制, 2024-04-03 设计模式 > 结构型模式 #设计模式
计算机网络和因特网:网络核心 网络核心网络核心:网络核心即由互联因特网端系统的分组交换机和链路构成的网状网络。 1.1 分组交换 报文(message):端系统彼此交换报文,包含该应用的设计者需要的任何东西。报文可以执行一种控制功能,也可以包含数据 分组(packet):为了从源端系统向目的端系统发送发送一个报文,源将长报文划分为较小的数据块,称为分组 分组交换机(packet switch):每个分组通过通信链路和分组交 2024-03-09 计算机网络 > 计算机网络和因特网 #计算机网络
JAVA为什么需要线程池?该如何实现? 前言整篇文章将围绕以下三个问题进行阐述 为什么需要线程池 不同线程池的种类,各自的特点 如何实现线程池的配置和使用 1. 为什么我们需要线程池 不使用线程池带来的问题 线程池默认使用无界队列,任务过多导致 OOM(out of memory) 线程创建过多,导致 OOM(out of memory) 共享线程池,次要逻辑拖垮主要逻辑 使用线程池的好处 降低资源消耗。通过重复利用已创建 2024-03-04 并发编程 #JAVA #并发编程 #线程池
String、StringBuilder、StringBuffer String class 类被 final 修饰,无法被继承 在 jdk1.8 之前及 jdk1.8 底层使用 char 数组进行存储,在 jdk1.8 之后使用 byte 数组进行存储 StringBuilder 特点:可变长度的字符串,同样被final修饰,底层是使用 char 数组或者 byte 数组进行存储,线程不安全 初始容量:空参构造时容量为16。有参构造时,当参数为 int 则容 2024-03-01 JAVA核心源码 > lang篇 #java #源码
计算机网络和因特网:网络边缘 网络边缘网络边缘:与因特网相连的计算机和其他设备位于因特网的边缘,故而被称为网络边缘,又称端系统。 主机/端系统可分为: 客户端(client) 服务端(server) 1. 1 接入网 接入网:将端设备物理连接到其边缘路由器[1]的网络。 1. 2 物理媒介 导引型媒介:电波沿着固体媒介前行 非导引型媒介:电波在空气或外层空间中传播 拓展定义数据中心:数据中心是全球协作的 2024-02-03 计算机网络 > 计算机网络和因特网 #计算机网络
计算机网络和因特网:什么是因特网 什么是因特网(Internet)可以从两个方面进行解释: 因特网的具体构成,构成因特网的基本硬件和软件组件 分布式应用提供服务的联网基础设施 1. 1 具体构成描述具体构成:主机/端系统、通信链路、分组交换机、协议 主机/端系统:连接到网络并进行通信的设备,可以是个人计算机、服务器、移动设备等。 通信链路:进行网络通信的物理媒介,如同轴电缆、铜线、光纤和无线电频谱,链路的 2024-02-03 计算机网络 > 计算机网络和因特网 #计算机网络
设计模式:策略模式 策略模式在策略模式(Strategy Pattern)中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改客户端代码。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对 2024-01-21 设计模式 > 行为模式 #设计模式
手撸Spring:设计与实现资源加载器,从Spring.xml解析和注册Bean对象(Day5) 一、目标在完成 Spring 的框架雏形后,现在我们可以通过单元测试进行手动操作 Bean 对象的定义、注册和属性填充,以及最终获取对象调用方法。但这里会有一个问题,就是如果实际使用这个 Spring 框架,是不太可能让用户通过手动方式创建的,而是最好能通过配置文件的方式简化创建过程。需要完成如下操作: 如图中我们需要把步骤:2、3、4整合到Spring框架中,通过 Spring 配置文件的方 2024-01-18 手撸spring系列 #源码 #spring