Design patterns 1.1设计模式产生的背景“设计模式”最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。 1990年软件工程 2023-07-13 设计模式 #设计模式
JUC 1.JUC概述1.1JUC简介在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。JUC 就是 java.util.concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。 1.2 进程与线程进程(Process) 是指系统中运行的程序的实例。每个进程都是独立运行的,它们之间相互隔离,互不干扰。 线程(Thread)是进程中的一个执行单 2023-07-07 JUC #Java #JUC #并发编程
ThreadLocal详解 15.1ThreadLocal简介ThreadLocal叫做线程局部变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 ThreadLoal 线程局部变量,同一个ThreadLocal所包含的对象,在不同的 Thread 中有 2023-07-06 JUC #Java #JUC #多线程
JVM内存模型概述 1.JVM简介JVM(Java Virtual Machine)是Java虚拟机的缩写,它是Java程序运行的基础环境和平台。JVM是一个软件程序,它可以将Java字节码解释或编译成特定计算机系统的机器码,使得Java程序可以在不同的计算机平台上运行。 JVM提供了Java程序运行所需的各种关键功能,包括内存管理、垃圾回收、即时编译、安全性检查、线程管理和异常处理等。它在运行Java程序时,负责加 2023-06-24 JVM #Java #JVM
Dubbo简介与配置 1.Dubbo和OpenFeign的简介 Dubbo一个高性能rpc框架,用于构建分布式微服务架构,它提供了服务注册与发现,负载均衡,容错机制等功能。Dubbo具有高性能和低延迟的特点,适合于大规模的分布式系统。 OpenFeign一个基于Java的声明式HTTP客户端框架,它简化了编写远程调用代码的过程。OpenFeign允许开发人员通过编写接口的方式定义对远程服务的访问,然后通过注解来配置请 2023-06-15 Dubbo #Dubbo #RPC #SpringCloud #微服务
多分支merge忽略文件合并 1. .gitattributes 文件的作用.gitattributes 文件是 Git 版本控制系统中的一个配置文件,它用于指定 Git 如何处理文件的二进制数据,以及如何标识文件的类型。具体来说,.gitattributes 文件的作用包括以下几个方面: 指定二进制文件的类型:在.gitattributes 文件中,可以指定某些二进制文件的类型,例如文本文件、HTML 文件、CSS 文件等 2023-06-09 Git #Git
基于DFA算法实现敏感词过滤 1.DFA算法简介DFA(Deterministic Finite Automaton) 是一种非递归自动机,也称为确定有穷自动机。它是通过event和当前的state得到nextstate,即event+state=nextstate。 **确定**:状态以及引起状态转换的事件都是可确定的。 **有穷**:状态以及引起状态转换的事件的数量都是可穷举的。 对于以下状态转换图: (S, 2023-06-02 DFA算法 #DFA算法
微服务ELK日志监控系统 1.1为什么需要监控项目日志项目日志是记录项目运行过程中产生的事件和信息的重要工具,对于项目管理来说,监控项目日志的重要性体现在以下几个方面: 提升项目管理效率:监控项目日志可以及时发现和解决问题,从而避免问题影响到项目的进度和质量,减少管理成本。 保证项目质量:通过监控项目日志,可以实时了解项目进展情况,及时调整和优化项目进度和工作流程,提升项目质量。 维护项目安全:监控项目日志可以发现并防范 2023-03-23 ELK #Elasticsearch #ELK #Logstash #Kibana #日志监控
Nowcoder Java专项练习 1.String字符串1.1String的不可变性以下代码执行后输出结果为( ) public class ClassTest{ String str = new String("hello"); char[] ch = {'a','b','c'}; public void fun(String str, char ch[]){ 2023-03-22 Java #Java
雪花算法详解 1.SnowFlake 雪花算法简介SnowFlake 中文意思为雪花,故称为雪花算法。最早是 Twitter 公司在其内部用于分布式环境下生成唯一 ID。 雪花算法将 64 位二进制位划分为五个部分,分别如下: 符号位:始终为 0,占用 1 位。 时间戳:精确到毫秒级,占用 41 位。 机器 ID:机器 ID 可以划分为两部分,占用 10 位。其中 5 位是数据中心 ID,另外 5 位是机 2023-03-21 SnowFlake算法 #SnowFlake算法