git-learning
git笔记git的基本操作config的3个作用域local:只对当前仓库有效global:对登录用户所有仓库有效system:对系统的所有用户有效 3个作用域的优先级: 12345678git config --list --local # 查看版本库范围的所有设置(若不指定local,则显示所有范围的设置)git config --list --global # 查看global范围的设置参数git config --list --system # 查看system范围的设置git config --list user.name # 只显示user.name的值git config --local user.name 'username' # 修改local(版本库)范围的user.name(若不加变量作用域,则默认为local)git config --global use...
design-pattern-from-spring
跟着 Spring 学设计模式观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新 又称:发布订阅、消息通知机制、事件监听、事件驱动编程 利用 Spring 事件机制改造,利用观察者模式设计高扩展性的代码 Spring 中的 ApplicationListener(ApplicationEvent) 案例: 3个监听器,在 UnderwritingEvent 被触发的时候,执行 onApplicationEvent() 方法 App Listener: 12345678@Component@Slf4jpublic class AppListener implements ApplicationListener<UnderwritingEvent> { @Override public void onApplicationEvent(UnderwritingEvent event) { log.info("App start..."); &...
character-encode
Text Encode & DecodeASCIIANSI(美国国家标准学会) 推出了 ASCII ASCII 包括 0-9 a-z A-Z !”#$%… 控制字符 码点 code point每个字符对应的数字 ASCII: 0-127(2^7) 字符集 charset标准所支持的所有字符及其对应码点的集合,称之为字符集 编码 encode从字符到计算机存储的的二进制的过程,称之为编码字符编码规则不一定会把码点直接转换成二进制存储在计算机中 在 ASCII 和 UTF-32 中,会把码点直接转换为二进制 Unicode囊括了各国文字、Emoji、象形文字的字符集 UTF-32每个字符使用 4 字节存储,不够 32 bit 的向前补零 UTF-8Unicode 的可变长度编码,码点越大,编码后的二进制越长 乱码的原因 编码规则与解码规则不同 部分编辑器将 Unicode 中无法识别或展示的字符自动替换为特殊符号,在保存文件时,将 EF BF BD 写入 Unicode 字符集中有一个特殊的替换符号,专门用于表示无法识别或展示的字符
boot
boot分区表类型MBRMBR(主引导记录): 0柱面 0磁头 1扇区 512Byte 内容 大小 主引导程序 446B 磁盘分区表 64B 磁盘有效标志 2B 主板启动时,逐一检查存储设备的 0柱面 0磁头 1扇区 中 MBR 的磁盘有效位,若其值为 0x55 0xAA ,则执行MBR中的主引导程序。 GPT引导方式 “uefi+gpt,mbr+legacy,这种组合是Windows的毛病,其它系统不强行要求组合,uefi也可以引导mbr。” UEFI启动项文件启动项 hd(x,x) /path/to/file设备启动项 /EFI/Boot/bootx64.efi 文件启动项对于GPT分区表的硬盘来说 启动项 放置于 ESP分区 中的 /EFI/<厂商>/ 下 如/EFI/windows/ESP分区 需要使用 FAT32文件系统 Legacy
activemq-note
ActiveMQ1. ActiveMQ 的安装Apache ActiveMQ 下载 Linux 版 tarball 运行 1./bin/activemq start 停止 1./bin/activemq stop 2. 接收消息的两种方法recive() 方法1234567891011121314151617181920212223242526272829public class JmsConsumer { private static final String ACTIVE_MQ_URL = "tcp://192.168.2.200:61616"; private static final String QUEUE_NAME = "queue01"; public static void main(String[] args) throws JMSException, IOException { ActiveMQConnectionFactory activeMQConnec...
Spring学习笔记
Spring基本概念四个核心依赖: spring-core:核心 jar 包 spring-beans:对象创建 jar 包 spring-context:上下文容器 jar 包(包含了其它 3 个依赖) spring-expression:表达式 jar 包 IOC1. 基本概念IOC:控制反转。 创建对象的权利,或者是控制的位置,由 Java 代码转移到 spring 容器,由 spring 的容器控制对象的创建,就是控制反转。 「对象的创建交给容器」 spring 创建对象时,会读取配置文件中的信息,然后使用反射给我们创建好对象之后在容器中存储起来,当我们需要某个对象时,通过 id 获取对象即可,不需要我们自己去 new。 2. 配置文件 文件位置:resources 文件名:xxx.xml 配置 bean 对象:<bean id="..." class="..."></bean> 3. 获取对象 创建一个容器(IOC)对象并解析 xml 配置文件。 实例化配置文件中的 bean 对象(反射)并发放入容器...
Chain-of-Responsibility-Pattern
Chain of Responsibility pattern 责任链模式本文转自 责任链模式-runoob 顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。 介绍意图: 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。 主要解决: 职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。 何时使用: 在处理消息的时候以过滤很多道。 如何解决: 拦截的类都实现统一接口。 关键代码: Handler 里面聚合它自己,在 HandlerRequest 里判断是否合适,如果没达到条件则向下传递,向谁传递之前 set 进去。 ...
ANSI-escape-sequences
ANSI Escape SequencesANSI转义序列(ANSI escape sequences) 是一种带内信号的转义序列标准,用于控制视频文本终端上的光标位置、颜色和其他选项。在文本中嵌入确定的字节序列,大部分以ESC转义字符和”[“字符开始,终端会把这些字节序列解释为相应的指令,而不是普通的字符编码。
9_读写数据
读写数据读取用户输入 类似于 C 中的 scanf() 函数, Go 中也有对应的针对标准输入输出函数。 12345678910111213141516171819202122232425package mainimport "fmt"var ( str string input = "11.22 / 12 / Python" format = "%f / %d / %s" f_num float32 i_num int s string)func main(){ // 从标准输出框中读取 fmt.Println("This is a test for a scanf function...") fmt.Scanln(&str) // Scanln 扫描来自标准输入的文本,空格分割 // fmt.Scanf("%s", str) // Scanf ...
8_接口和反射
接口和反射接口的定义方式1234type Namer interface { Method1(param_list) return_type Method2(param_list) return_type } 接口相对于其他面向对象的语言,是 Go 中的多态的表现。具体代码展示如下: 1234567891011121314151617181920212223242526272829303132333435363738package mainimport "fmt"type Shaper interface { Area() float32}type Square struct { side float32}func (sq *Square) Area() float32 { return sq.side * sq.side}type Rectangle struct { length, width float32}fun...