自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

边行动边改善

waiting for life is waiting for death

  • 博客(52)
  • 收藏
  • 关注

原创 学习笔记:《程序员小灰》

文章目录1 学习资料汇总2 Map2.1 学习资料2.2 学习笔记1 学习资料汇总程序员小灰程序员小灰2017年原创汇总程序员小灰2018年原创汇总程序员小灰2019年原创汇总程序员小灰2020年原创汇总2 Map2.1 学习资料 漫画:什么是HashMap? 漫画:高并发下的HashMap 漫画:什么是ConcurrentHashMap?2.2 学习笔记...

2021-05-05 04:38:37 382 2

原创 网课收藏夹

网课视频网课资料课程清单:0001 SpringBoot与Shiro整合-权限管理实战视频0002 疯狂讲义Activiti6.X-疯狂讲义,Activiti工作流入门必备课程0003 Spring Task快速入门0004 尚硅谷_MyBatisPlus视频教程0005 SpringBoot集成JUnit单元测试0006 Java教程 - Part-8-JUnit单元测试【完结】0007 最新ElasticSearch6实战教程0008 尚硅谷_Java8新特性0009 15分钟快.

2021-04-22 00:39:47 121

原创 bio&nio&netty&webSocket

IdleStateHandler、LoggingHandler接口或者抽象类:方法:

2023-08-22 20:27:16 113

原创 学习笔记:《Offer来了(框架篇)》第3章 Netty网络编程原理及应用

Netty支持协议包括:HTTP、TCP、UDP、FTP、SMTP。

2023-08-20 10:29:02 130

原创 Tomcat配置文件server.xml

域名、应用目录、是否解压war包、是否自动部署。协议、端口、是否开启SSL、SSL相关配置。

2023-08-09 06:23:52 96

原创 Nginx配置文件nginx.conf

【代码】nginx.conf。

2023-08-09 06:06:17 69

原创 票据种类与业务

票据业务:开票、放款、背书、承兑、保证、贴现、转贴现、再贴现、追索、质押、解押。

2023-08-07 02:12:52 68

原创 HR问:你有什么想要了解的吗?

我想了解一下:前后端是否分离招聘流程报到时间上班时长加班(加班费/调休)试用期时长/试用期薪资/转正考核薪资结构:基本工资、岗位工资、绩效工资调薪机制年终奖年假五险一金基数...

2021-05-29 09:34:30 473

原创 学习笔记:《程序员小灰》ConcurrentHashMap

文章目录1 ConcurrentHashMap的底层原理2 调用size()方法时解决一致性问题1 ConcurrentHashMap的底层原理HashTable读写时都给整个集合加锁;ConcurrentHashMap使用可重入锁的分段锁技术。ConcurrentHashMap集合的segments数组中有2的N次方个Segment对象。两次hash运算:首先定位到Segment,之后定位到Segment内的具体数组下标。ConcurrentHashMap并发读写:不同Segment的

2021-05-05 12:46:01 196

原创 学习笔记:《程序员小灰》HashMap

文章目录1 为什么要学习HashMap的底层原理?21 为什么要学习HashMap的底层原理?静得下心学习。对编程的兴趣不是停留在表面。学习的能力。企业通过这个筛选招聘。2

2021-05-05 07:20:30 353 2

原创 学习笔记:《Offer来了(框架篇)》第1章 Spring原理及应用

文章目录1.1 Spring的特性1.2 Spring的模块1.3 Spring的核心JAR包1.4 Spring的注解1.4.1 Spring注解的使用1.导入命名空间及规范2.配置扫描包3.使用注解1.4.2 Spring的常用注解1.5 Spring IoC的原理1.5.1 Spring IoC简介1.5.2 Spring Bean的装配流程1.5.3 Spring Bean 的作用域1.5.4 Spring Bean的生命周期1.5.5 Spring 的4种依赖注入1.构造器注入2.set方法注入3

2021-04-30 10:43:25 801 5

原创 学习笔记:《Offer来了(框架篇)》第9章 ElasticSearch原理及应用

文章目录9.1 ElasticSearch的概念和原理9.1.1 Lucene的介绍1.Lucene简介2.倒排索引3.Lucene的架构4.Lucene的全文检索流程9.1 ElasticSearch的概念和原理9.1.1 Lucene的介绍1.Lucene简介ElasticSearch的底层存储基于Lucene实现。2.倒排索引搜索引擎的关键是建立倒排索引,倒排索引的一般表示是:关键词、频度、位置。由于不是按照记录来确定属性值的,而是由属性值来确定记录的位置的,因此被称为倒排索引。3.L

2021-04-28 01:56:20 477 6

原创 二分查找算法的变形:旋转数组

文章目录1 原理2 实现3 测试漫画:“旋转数组”中的二分查找1 原理2 实现import java.util.Arrays;/** * 二分查找算法的应用:旋转数组 * * @author wgm * @since 2021/4/26 */public class RotatedBinarySearch { public static void main(String[] args) { int[] ints = {-30, -30, -15, -2,

2021-04-26 15:13:36 76

原创 学习笔记:《Offer来了(原理篇)》第8章 分布式缓存的原理及应用

缓存分类:进程级缓存:集合分布式缓存:Redis、Memcached、Ehcache8.1 分布式缓存介绍8.2 Ehcache、Memcached详情请阅读《Offer来了(原理篇)》。8.3 Redis的原理及应用数据类型:String(字符串)、Hash(散列)、List(列表)、Set(集合)、ZSet(有序集合)、Bitmap(位图)、HyperLogLog(超级日志)、Geospatial(地理空间)支持:分布式事务、数据持久化、数据分片、复制、Lua脚本、LRU驱

2021-04-26 00:54:45 245

原创 学习笔记:《程序员小灰》跳表(SkipList)

漫画:什么是跳跃表?定义空间复杂度为O(n)。添加抛硬币法。时间复杂度为O(logn)。删除时间复杂度为O(logn)。

2021-04-26 00:54:23 275

原创 十大排序算法汇总

漫画:“排序算法” 大总结排序最好时间复杂度最坏时间复杂度平均时间复杂度空间复杂度稳定性梯队内的比较插入排序O(n)O(n2)O(n2)O(1)√比较交换次数较少冒泡排序O(n)O(n2)O(n2)O(1)√比较交换次数较多选择排序O(n2)O(n2)O(n2)O(1)×-希尔排序O(n1.3)O(n log^2n)O(n logn)O(1)×归并排序O(n logn)O(n logn)O(n lo

2021-04-25 13:54:53 143

原创 Activiti

| 事件 | 开始(捕获) | 结束(抛出) | 中间(捕获|抛出) | 边界(捕获) ||–|--|–|--|–|| 消息(单播) | 消息开始 | | 消息中间(捕获) | || 信号(广播) | | | 信号中间(捕获&抛出) | 信号边界 || 错误 | 错误开始 | 错误结束 | | 错误边界 || 终止 | | 终止结束 | | || 定时 | 定时开始 | | 定时中间(捕获) | 定时边界 | |视频目录:01 Activiti介绍与搭建开发环境.

2021-04-25 00:12:02 197

原创 使用poi-ooxml处理word文档

文档 -> 段落 -> Runs -> Run(最小单元)文档 -> 表格 -> 行 -> 格 -> 段落文档 -> 页眉/页脚 -> 段落/表格

2021-04-25 00:11:36 1024

原创 Spring Cloud

Admin监控中心(认证):spring-boot-admin-starter-server客户端:spring-boot-admin-starter-clientNetflix Eureka注册中心(单个、集群、认证):spring-cloud-starter-netflix-eureka-server客户端:spring-cloud-starter-netflix-eureka-clientConfig配置中心(单个、集群、认证):spring-cloud-config-serv

2021-04-25 00:11:21 69

原创 OAuth 2.0

在请求token过程中不会出现授权码。

2021-04-25 00:11:02 65

原创 开发中的坑

1 application域对象1.1 项目一:邮件、站内信存在问题:邮件、站内信的内嵌链接所携带的随机码被存放到application域对象中用于进行链接的有效性校验,但项目重启后,内存清空将会导致邮件、站内信的内嵌链接失效。解决方案:方案一,实现application域对象的序列化与反序列化。方案二,将存放到application域对象的属性更改为存放到数据库。1.2 项目二:小程序登录存在问题:存放到application域对象的小程序用户登录态将拥有与应用相同的生命周期,无效的登录

2021-04-25 00:10:30 88

原创 .gitignore

HELP.mdtarget/!.mvn/wrapper/maven-wrapper.jar!**/src/main/**/target/!**/src/test/**/target/### STS ###.apt_generated.classpath.factorypath.project.settings.springBeans.sts4-cache### IntelliJ IDEA ###.idea*.iws*.iml*.ipr### NetBeans ###

2021-04-25 00:10:01 74

原创 搭建GitLab自动部署环境

一、CentOS、Java、Maven、Git确定是否CentOS 7版本[root@VM-0-4-centos ~]# cat /etc/redhat-release下载Java压缩包并解压[root@VM-0-4-centos ~]# cd /usr/local/src[root@VM-0-4-centos ~]# mkdir java[root@VM-0-4-centos ~]# cd java[root@VM-0-4-centos ~]# tar -xvf ../jdk-8u

2021-04-25 00:09:14 514

原创 技术分享:Elasticsearch

2021-04-25 00:08:40 148

原创 学习笔记:《程序员小灰》二叉堆(Binary Heap)

漫画:什么是二叉堆?(修正版)定义二叉堆(Binary Heap)本质上是一种完全二叉树,它分为:最大堆、最小堆。二叉堆的特征:最大堆:任何一个父节点的值,都大于等于它左右孩子节点的值。最小堆:任何一个父节点的值,都小于等于它左右孩子节点的值。添加删除构建所有节点,依次上浮,或依次下沉。应用堆排序、优先级队列。实现import java.util.Arrays;/** * 二叉堆 * <p> * 大顶堆 * * @author wgm *

2021-04-24 00:09:48 336

原创 学习笔记:《Offer来了(原理篇)》第7章 数据库及分布式事务

7.1 数据库的基本概念及原则7.1.1 存储引擎1. MyISAM不支持事务、行级锁、外键查询快、增删改慢(表级锁)2. InnoDB3. TokuDB4. Memory

2021-04-24 00:09:18 223

原创 学习笔记:《程序员小灰》B+树(Balance+ Tree)

漫画:什么是B+树?

2021-04-23 00:04:27 528

原创 学习笔记:《程序员小灰》B树(B-树,Balance Tree)

漫画:什么是B-树?定义一个m阶的B树(Balance Tree,B-树)的特征:根结点至少有两个子节点;每个中间节点都包含k-1个元素和k个子节点,其中 m/2 <= k <= m;每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m;所有的叶子结点都位于同一层;每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个子节点所包含的元素的值域划分。查找阶数越大,比较次数越多;高度越小,IO次数约少。相比单次IO耗时,单次比较耗时几乎可以忽

2021-04-23 00:04:06 621 2

原创 学习笔记:《程序员小灰》二叉查找树(Binary Search Tree)

漫画:什么是红黑树?(整合版)定义:二叉查找树为满足以下条件的树:若左子树不空,则左子树上所有节点的值均小于或等于它的根节点的值;若右子树不空,则右子树上所有节点的值均大于或等于它的根节点的值;左、右子树也分别为二叉查找树。1 插入操作在二叉查找树中进行插入操作时只需找到待插入的父节点,将数据插入即可。2 删除操作在待删除的节点没有子节点时,直接删除该节点,即在其父节点中将其对应的子节点置空即可。在待删除的节点只有一个子节点时,使用子节点替换当前节点,然后删除该节点即可。

2021-04-23 00:03:47 291 4

原创 学习笔记:《程序员小灰》平衡二叉树(AVL Tree)

漫画:什么是AVL树?(修订版)定义:对于AVL树的每一个结点,平衡因子是它的左子树高度和右子树高度的差值。只有当二叉树所有结点的平衡因子都是-1, 0, 1这三个值的时候,这颗二叉树才是一颗合格的AVL树。AVL树的左旋、右旋AVL树的左旋、右旋与红黑树相同。AVL树的添加、删除1. 左左局面(LL)自平衡:右旋。2. 左右局面(LR)自平衡:左旋->右旋。...

2021-04-23 00:03:26 188

原创 学习笔记:《程序员小灰》红黑树(Red Black Tree)

漫画:什么是红黑树?(整合版)定义:红黑树(Red-Black Tree,R-B Tree)是一种自平衡的二叉查找树。在红黑树的每个节点上都多出一个存储位表示节点的颜色,颜色只能是红(Red)或者黑(Black)。红黑树的特性如下:每个节点,或者是黑色的,或者是红色的;根节点是黑色的;每个叶子节点(NIL)都是黑色的;如果一个节点是红色的,则它的子节点必须是黑色的;从一个节点到该节点的子孙节点的所有路径上都包含相同数量的黑色节点。红黑树的左旋对a节点进行左旋,指将a节点的右子节点设

2021-04-23 00:03:14 445 4

原创 学习笔记:《Offer来了(原理篇)》第6章 网络与负载均衡

6.1 网络6.1.1 OSI七层网络模型应用层:各种app,用户访问网络的入口。HTTP、HTTPS。表示层:数据处理,编解码、加解压、加解密。会话层:会话管理。一次Session包含多次TCP连接,一个Session保存多个TCP连接之间的共享信息,使用Cookie区分不同Session。传输层:定义数据传输的协议、端口。UDP、TCP。网络层:IP地址的封装和解析。交换机、路由器、防火墙。数据链路层:MAC地址的封装和解析。交换机、网卡、网桥。物理层:定义物理设备标准,数模转换、模

2021-04-23 00:02:16 267

原创 (略)学习笔记:《Offer来了(原理篇)》第5章 Java中的常用算法

5.9 其他算法5.9.1 剪枝算法剪枝算法属于算法优化范畴。在搜索算法的优化中,剪枝算法通过某种预判,去掉一些不需要的搜索范围,从直观上理解相当于剪去了搜索树中的某些“枝条”,故称剪枝。剪枝优化的核心是设计剪枝预判方法,即哪些“枝条”被剪掉后可以缩小搜索范围,提高搜索效率而又不影响整体搜索的准确性。如图所示为在二叉树的查找过程中提前判断元素 48不可能在左侧树中,将其剪枝以减少搜索范围。5.9.2 回溯算法回溯算法是一种最优选择搜索算法,按选优条件向前搜索,以达到目标。如果在探索到某一

2021-04-23 00:01:56 180

原创 (略)学习笔记:《Offer来了(原理篇)》第4章 数据结构

4.1 栈及其Java实现push()、pop()、peek()4.2 队列及其Java实现offer()、poll()、peek()4.3 链表4.3.1 链表的特点4.3.2 单向链表的操作及其Java实现4.3.3 双向链表及其Java实现4.3.4 循环链表4.4 散列表4.4.1 常用的构造散列函数◎ 直接定址法:取关键字或关键字的某个线性函数值为散列地址,即 h(key) = key或h(key)=a×key+b,其中a和b为常数。◎ 平方取值法:取关键字.

2021-04-23 00:01:35 283

原创 学习笔记:《Offer来了(原理篇)》第3章 Java并发编程

重点词汇:synchronized、volatile、ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier、Atomic原子类3.1 Java线程的创建方式Thread类本身已经实现了Runnable接口。Thread对象的run方法中其实调用了Runnable对象的run方法。3.2 线程池的工作原理3.2.1 线程复用3.2.2 线程池的核心组件和核心类核心组件:线程池管理器:用于创建并管理线程池。工作线程:线程池中执.

2021-04-22 00:42:18 312

原创 学习笔记:《Offer来了(原理篇)》第2章 Java基础

2.1 集合2.1.1 ListArrayList:基于数组;查询快、增删慢;线程不安全。Vector:基于数组;查询快、增删慢;线程安全;拥有Stack子类(栈)。LinkedList:基于双向链表;查询慢、增删快;线程不安全;实现Deque接口(双向队列)。2.1.2 Queue非阻塞队列(略)阻塞队列ArrayDequeArrayBlockingQueueLinkedListLinkedBlockingQueueIdentityLinkedList

2021-04-22 00:42:05 341

原创 学习笔记:《Offer来了(原理篇)》第1章 JVM之Java网络编程模型

1.9 Java网络编程模型1.9.1 阻塞I/O模型在进程空间中调用revcfrom,其系统调用直到数据包到达且被复制到应用进程的缓存区中或者发生错误时才返回,在此期间一直会等待,进程在从调用recvfrom开始到它返回的整段时间内都是被阻塞的,因此被称为阻塞I/O模型。1.9.2 非阻塞I/O模型recvfrom从应用层到内核的时候,如果该缓冲区没有数据的话,就直接返回一个EWOULDBLOCK错误,然后进行轮询检查这个状态,看内核是不是有数据到来。1.9.3 多路复用I/O模型在多路

2021-04-22 00:41:54 189

原创 学习笔记:《Offer来了(原理篇)》第1章 JVM

1.1 JVM的运行机制有多个进程启动就会实例化多个虚拟机实例。Java程序的运行过程:编译器编译:.java源文件 -> .class 字节码文件。JVM编译:.class字节码文件 -> 相应操作系统的机器码。本地方法库:机器码调用相应的本地方法库执行相应的方法。JVM的组成:类加载器子系统运行时数据区:虚拟机栈、本地方法区、程序计数器、虚拟机堆、方法区执行引擎:即时编译器、垃圾回收器件本地接口库1.2 多线程JVM的后台线程:编译器线程GC线程

2021-04-22 00:41:42 591 2

原创 HTTPS是如何保证通信安全的?

HTTPS分为两个阶段:证书验证、数据传输。

2021-04-22 00:40:10 111

原创 使用Wireshark抓包,查看TCP的3次握手与4次挥手、SSL/TLS的4次握手

1.Wireshark以访问https://www.gdis.org.cn(简称远程地址)为例。为避免看不到密钥协商算法,建议远程地址可以改为:https://www.csdn.net/。通过“Ping 域名”,获取IP地址:打开Wireshark并输入过滤条件“ip.addr == 121.8.249.36”,清空Wireshark的已捕获数据,使用浏览器访问远程地址,即可看到抓包数据:2.TCP的3次握手清空浏览器Cookie(或重启浏览器),清空Wireshark的已捕获数据,使

2021-04-22 00:39:57 4470

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除