代理模式

介绍

意图:为其他对象提供一种代理以控制对这个对象的访问

代理模式和装饰器模式很相似,但代理模式更偏向于权限控制,装饰器模式则更偏向于功能扩展

阅读全文

观察者模式

当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。
使用场景:

  • 一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这些方面封装在独立的对象中使它们可以各自独立地改变和复用。
  • 一个对象的改变将导致其他一个或多个对象也发生改变,而不知道具体有多少对象将发生改变,可以降低对象之间的耦合度。
  • 一个对象必须通知其他对象,而并不知道这些对象是谁。
  • 需要在系统中创建一个触发链,A对象的行为将影响B对象,B对象的行为将影响C对象……,可以使用观察者模式创建一种链式触发机制。

阅读全文

红黑树

![左右旋转](https://cdn.jsdelivr.net/gh/cloud-r/GitakRepository/static_files/blog/img/左右旋.png)

阅读全文

《MySql必知必会》学习笔记

《MySql必知必会》学习笔记

MySQL已经成为世界上最受欢迎的数据库管理系统之一。无论是用 在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明 了自己是个稳定、可靠、快速、可信的系统,足以胜任任何数据存储业 务的需要。

阅读全文

KMP算法

kmp算法思想.png

一、KMP算法简介

当目标串txt与模式串pat进行匹配时,如果txt[i]遇到不匹配的pat[j]时,不必像暴力匹配法那样每次只将pat后移一位,然后又从其第一位和txt[i+1]进行比较。

因为如果pat[0]~pat[j-1]有公共前后缀的话,那么txt[i]前的子串也必定存在一个公共前后缀

那么,我们可以将pat右移,使得从 pat的前缀匹配txt子串的前缀,pat的后缀匹配txt子串的后缀 ,变为pat的前缀匹配txt的后缀,这样就不必每次都移动一位,然后重新开始匹配

阅读全文

Liunx下安装JDK

  • 解压
  • 创建储存位置
  • 移动jdk到指定位置
  • 配置环境变量
  • 更新环境变量
  • 更新环境变量
  • 测试

阅读全文

LeetCode 27th 移除元素

1.Subject

  • 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
  • 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
  • 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

阅读全文

【转载】java按位与、按位或、异或、移位、按位非

  • 按位与:&
  • 按位或:|
  • 异或:^
  • 有符号移位:>>、<<
  • 无符号移位:>>>、<<<
  • 按位非:~

阅读全文