Tags

Hey, this is Tags.
Java基础

Filter指定UrI免登录

基于注解实现拉取所有需要免登录的接口,可以匹配到HttpMethod层面的路由地址


GC问题排查

GC问题排查


三色标记

三色标记


函数式编程

函数式编程


函数接口

函数接口是指内部只有一个抽象方法的接口


响应式编程

响应式编程


线程池

线程池


编码与解码

编码:将字符转为字节序列 解码:将字节序列转为字符


HashMap源码解析

哈希表(hash table)的实现是基于Map接口,这种实现方式提供了Map所有的可选操作,并且允许空键和空值(null key null value)


数据库设计规范

Mysql设计规范


Java注解(Annotation)

Java语言的类、方法、变量、参数和包等都可以被标注,和JavaDoc不同,Java标注可以通过反射获取标注内容,在编译器生成类文件时,标注可以被嵌入到字节码中


ReentrantLock源码解析

java除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景


Stream流常规用法

A sequence of elements supporting sequential and parallel aggregate operations


Jvm工具

Jps jstack jstat jinfo jmap jhat


Java虚拟机

Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行


剑指offer

二叉树

二叉树


剑指offer001-整数除法

整数除法


剑指offer003-前n个数字二进制中1的个数

前n个数字二进制中1的个数


剑指offer004-只出现一次的数字

只出现一次的数字


剑指offer006-排序数组中两个数字之和

排序数组中两个数字之和


剑指offer002-二进制加法

二进制加法


剑指offer005-单词长度的最大乘积

单词长度的最大乘积


剑指offer008-和大于等于target的最短子数组

和大于等于target的最短子数组


剑指offer007-数组中和为0的三个数

数组中和为0的三个数


剑指offer010-和为k的子数组

和为k的子数组


剑指offer009-乘积小于K的子数组

乘积小于K的子数组


剑指offer011-0和1个数相同的子数组

和1个数相同的子数组


剑指offer013-二维子矩阵的和

二维子矩阵的和


剑指offer014-字符串中的变位词

符串中的变位词


剑指offer012-左右两边子数组的和相等

左右两边子数组的和相等


剑指offer015-字符串中的所有变位词

字符串中的所有变位词


剑指offer017-含有所有字符的最短字符串

含有所有字符的最短字符串


剑指offer016-不含重复字符的最长子字符串

不含重复字符的最长子字符串


剑指offer018-有效的回文

有效的回文


剑指offer020-回文子字符串的个数

回文子字符串的个数


剑指offer021-删除链表的倒数第n个节点

删除链表的倒数第n个节点


剑指offer019-最多删除一个字符得到回文

最多删除一个字符得到回文


剑指offer022-链表中环的入口节点

链表中环的入口节点


剑指offer023-两个链表的第一个重合节点

两个链表的第一个重合节点


剑指offer026-重排链表

重排链表


剑指offer024-反转链表

反转链表


剑指offer025-链表中的两数相加

链表中的两数相加


剑指offer028-展平多级双向链表

展平多级双向链表


剑指offer027-回文链表

回文链表


剑指offer030-剑指offer030-插入、删除和随机访问都是O(1)的容器

剑指offer030-插入、删除和随机访问都是O(1)的容器


剑指offer032-有效的变位词

有效的变位词


剑指offer029-排序的循环链表

排序的循环链表


剑指offer033-变位词组

变位词组


剑指offer036-后缀表达式

后缀表达式


剑指offer034-外星语言是否排序

外星语言是否排序


剑指offer035-最小时间差

最小时间差


剑指offer037-小行星碰撞

小行星碰撞


剑指offer038-每日温度

每日温度


剑指offer039-直方图最大矩形面积

直方图最大矩形面积


剑指offer040-矩阵中的最大的矩形

矩阵中的最大的矩形


剑指offer041-滑动窗口的平均值

滑动窗口的平均值


剑指offer045-二叉树最底层最左边的值

二叉树最底层最左边的值


剑指offer044-二叉树每层的最大值

二叉树每层的最大值


剑指offer047-二叉树剪枝

二叉树剪枝


剑指offer049-从根节点到叶节点的路径数字之和

从根节点到叶节点的路径数字之和


剑指offer050-向下的路径节点之和

向下的路径节点之和


剑指offer046-二叉树的右侧视图

二叉树的右侧视图


排序算法

排序算法


设计模式

代理模式

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用


工厂模式

工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式


策略模式

策略模式把对象本身和运算规则区分开来,其功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性的思想


装饰器模式

装饰器的价值在于装饰,他并不影响被装饰类本身的核心功能。在一个继承的体系中,子类通常是互斥的。比如一辆车,品牌只能要么是奥迪、要么是宝马,不可能同时属于奥迪和宝马,而品牌也是一辆车本身的重要属性特征。但当你想要给汽车喷漆,换坐垫,或者更换音响时,这些功能是互相可能兼容的,并且他们的存在不会影响车的核心属性:那就是他是一辆什么车。这时你就可以定义一个装饰器:喷了漆的车。不管他装饰的车是宝马还是奥迪,他的喷漆效果都可以实现


观察者模式

当对象存在一对多关系时,则使用观察者模式(Observer Pattern)


责任链模式

责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式


门面与调停者模式

门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。