封面图

聊聊Git subModule(子模块)

2 月 19 日
阅读 5 分钟
4.1k
比如在公司不同开发团队中,有一个基础共享库,同时被多个项目调用。若要保证基础共享库的动态更新,那么就需要把共享库独立为一个代码库,但是分别把共享库中的文件拷贝到各自的项目中会造成冗余,而且再次更新共享库就会在不同项目下更新,会比较麻烦。
封面图

聊聊Git 合并和变基

1 月 28 日
阅读 7 分钟
3.4k
最简单的合并算法,它是在一条不分叉的两个分支之间进行合并。快进式合并是默认的合并行为,并没有产生新的commit。如下图所示,虚线部分是合并前,在经过如下命令后:
封面图

聊聊Git中的引用

1 月 23 日
阅读 6 分钟
1.6k
refs 目录下包含了 heads、remote、tags 三个子目录,每个子目录下都有对应的文件打开 heads/master 文件,查看其内容:
封面图

Git暂存区机制详解

1 月 20 日
阅读 8 分钟
1.5k
从git init 执行后发生了什么我们知道,Git 经过初始化后,会形成三个主要区域:工作目录(Working Directory)、暂存区(Staging Area)和版本库(Repository):
封面图

深入剖析Git对象底层原理

1 月 18 日
阅读 11 分钟
1.6k
Git 在中间做了什么,它如何存储不同的文件和内容,以及如何区分不同分支下的文件版本呢?日常操作对这些自动的操作都是无感的。但是如果哪天一旦上述操作中出现了错误,需要找回自己的代码时,如果不懂 Git 其内部存储原理,是没法找回的,因此为了避免这种情况,就有必要去了解其内部的存储——Git 对象的原理。
封面图

git init 执行后发生了什么

1 月 11 日
阅读 4 分钟
1.5k
首先在磁盘中创建一个新目录 Git,进入该目录后执行 git init 初始化。这个时候目录下会创建一个隐藏目录 ./git,这个./git 目录叫做 Git 版本库或者仓库
封面图

2023,半路转行程序员的第一年

1 月 9 日
阅读 4 分钟
469
键盘敲着总结,抬头看桌面的日期,转眼间来到了 2024 年,时间就这么悄悄的流逝。本来想 12 月底就把总结给写完的,结果一拖,拖到了 2024😂。我本科专业是材料,当时属于生环化材“天坑”专业,快毕业那几年互联网发展很快,互联网公司新人的薪水,就能达到材料行业十年工作经验的工资。冲击太大,于是乎在毕业后,尝试开...
封面图

TCP中的三次握手和四次挥手

2023-12-28
阅读 4 分钟
1k
我们知道TCP是运输层的面向连接的可靠的传输协议。面向连接的,指的就是在两个进程发送数据之前,必须先相互“握手”,确保两进程可以进行连接。并且这个传输是点对点的,即一个TCP连接中只有一个发送方和接收方;可靠的,指的是在任何网络情况下,在TCP传输中数据都将完整的发送到接收方。
封面图

MySQL 事务的 ACID 特性

2023-12-22
阅读 3 分钟
795
MySQL事务是什么,它就是一组数据库的操作,是访问数据库的程序单元,事务中可能包含一个或者多个 SQL 语句。这些SQL 语句要么都执行、要么都不执行。我们知道,在MySQL 中,有不同的存储引擎,有的存储引擎比如MyISAM 是不支持事务的,所以说MySQL 事务实际上是发生在 存储引擎部分。
封面图

re:Invent 2023 Amazon Q 初体验

2023-11-30
阅读 4 分钟
24.1k
    亚马逊云科技在2023 re:Invent全球大会上宣布推出 Amazon Q, 在主题演讲中,亚马逊云科技 CEO Adam Selipsky 将其描述为能够“轻松聊天、生成内容和采取行动”,“一种新型的生成式人工智能助手,旨在工作中为你提供帮助”。 Selipsky说,考虑到这个聊天机器人的对话特性,Q这个名字来源于“问题”(...
封面图

什么是MVCC?看看它的实现原理

2023-10-24
阅读 7 分钟
1.1k
之前在讲 MySQL 事务隔离性提到过,对于写操作给读操作的影响这种情形下发生的脏读、不可重复读、虚读问题,是通过MVCC 机制来进行解决的,那么MVCC到底是如何实现的,其内部原理是怎样的呢?我们要抓住三个方面:记录中的4个隐藏字段、undo log 和 read view。
封面图

Redis 如何实现消息队列

2023-10-21
阅读 7 分钟
862
消息队列(Messeage Queue,MQ)是在分布式系统架构中常用的一种中间件技术,从字面表述看,是一个存储消息的队列,所以它一般用于给 MQ 中间的两个组件提供通信服务。
封面图

Redis 高可用之主从模式

2023-10-20
阅读 5 分钟
666
上一节RDB和AOF持久化机制提到了 Redis 的持久性,也就是在服务器实例宕机或故障时,拥有再恢复的能力。但是在这个服务器实例宕机恢复期间,是无法接受新的数据请求。对于整体服务而言这是无法容忍的,因此我们可以使用多个服务器实例,在一个实例宕机中断时,另外的服务器实例可以继续对外提供服务,从而不中断业务。Re...
封面图

Redis 中的 RDB 和 AOF 持久化机制

2023-10-19
阅读 6 分钟
1.5k
Redis 的持久化功能是区别于 Memcached 显著特性,数据持久化可以保证系统在发生宕机和重启后数据不会丢失,对于 redis 这种存储在内存中的数据库显得尤为重要。 在 Redis 4.0 以前数据持久化的方式主要有两种
封面图

Redis 的键管理

2023-10-18
阅读 8 分钟
469
Redis 是一个键值对(key-value pair)的数据库服务器,其数据保存在 src/server.h/redisDb 中(网上很多帖子说在 redis.h 文件中,但是 redis 6.x版本目录中都没有这个文件。redisDb 结构应该在 server.h文件中)
封面图

Redis 底层数据结构

2023-10-17
阅读 14 分钟
667
在Redis数据结构和对象机制中提到的图中,我们知道,可以通过 redisObject 对象的 type 和 encoding 属性。可以决定Redis 主要的底层数据结构:SDS、QuickList、ZipList、HashTable、IntSet、ZskipList 。
封面图

Redis 数据类型和对象机制

2023-10-16
阅读 8 分钟
852
Redis 是(key-value)的 NoSQL 数据库,所有的 key 都是 String ,它的 value 可以是 String、hash、list、set、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等数据类型,这些类型都支持 push/pop、add/remove 及取交集和差集。而且这些操作都是原子性的。
封面图

Java异常到底是个啥——一次异常引发的思考

2023-10-10
阅读 27 分钟
1.8k
说明自己对异常的处理机制和异常处理的规范都不太了解,趁着这次出现的问题,来好好学习Java异常的体系机制和原理。这篇文章主要通过三个部分阐释Java异常
封面图

探析 Spring 容器内部事件发布

2023-09-27
阅读 11 分钟
885
其实在 JDK 中已经提供相应的自定义事件发布功能的基础类:java.util.EventObject类 :自定义事件类型java.util.EventListener接口:事件的监听器首先了解几个概念:Spring 事件类结构1. 事件类事件类也就是定义发送的内容,比如可以通过继承ApplicationContextEvent来自定义一个特定事件类。1.1 ApplicationEvent类首先...
封面图

最简单的设计模式是单例?

2023-09-11
阅读 6 分钟
3.3k
单例模式可以说是Java中最简单的设计模式,但同时也是技术面试中频率极高的面试题。因为它不仅涉及到设计模式,还包括了关于线程安全、内存模型、类加载等机制。所以说它是最简单的吗?今天就分别从单例模式的实现方法和应用场景来介绍一下单例模式
封面图

静态代理还是动态代理?来聊聊Java中的代理设计模式

2023-09-10
阅读 8 分钟
1.2k
代理模式(Proxy Design Pattern)是一种结构型设计模式,为一个对象提供一个代理对象,然后使用代理对象控制对原对象的引用。即通过代理对象访问目标对象。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。
封面图

遇到无序多变请求怎么办,可以试试责任链模式

2023-09-09
阅读 11 分钟
1.5k
责任链模式(Chain Of Responsibility Design Pattern),也叫做职责链,是将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。
封面图

还在用if-else? 用策略模式干掉它

2023-09-08
阅读 6 分钟
802
策略模式是一种行为设计模式,它将一组行为转换为对象, 并使其在原始上下文对象内部能够相互替换。大白话就是比如我写一个登录业务,目前需要满足能通过系统内、微信等平台进行登录,未来还有可能引入其他的平台,这个时候就可以采用策略模式,来让不同的平台的登录都有对应的策略路径。
封面图

浅析观察者模式在Java中的应用

2023-09-07
阅读 11 分钟
2.2k
观察者模式(Observer Design Pattern),也叫做发布订阅模式(Publish-Subscribe Design Pattern)、模型-视图(Model-View)模式、源-监听器(Source-Listener)模式、从属者(Dependents)模式
封面图

Spring IOC容器启动过程和 BeanFactory 的Bean的生命周期

2023-09-05
阅读 11 分钟
541
Resource接口是所有资源的抽象和访问接口,主要有这样几种:ResourceLoader接口是资源查找定位策略的统一抽象,具体的资源查找由具体的资源查找实现类给出: