自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(182)
  • 资源 (1)
  • 收藏
  • 关注

原创 SpringMVC--拦截器使用原理

基于HandlerInterceptor接口实现拦截器

2023-03-17 09:50:36 726 1

转载 Maven生命周期

Maven的生命周期

2022-09-21 09:30:20 221

原创 排序算法--选择排序(Java实现)

Java编码实现选择排序算法

2022-09-07 11:15:07 583

原创 排序算法--冒泡排序(Java实现)

Java冒泡排序实现,简单学习

2022-09-06 20:12:26 3006

原创 基于Redis手工实现分布式锁

基于Redis手工实现分布式锁

2022-08-31 12:01:04 440

转载 Java深拷贝与浅拷贝

Java 深拷贝和浅拷贝

2022-08-30 10:38:24 96

原创 线程上下文切换

线程上下文切换

2022-08-25 11:42:06 3446

原创 TCP/IP的三次握手

TCP/IP三次握手过程

2022-08-24 17:24:36 503

原创 LongAdder原理浅析

LongAdder原理浅析

2022-08-16 15:11:38 4670 3

原创 Semaphore学习

Semaphore信号量学习

2022-08-13 15:15:09 208

原创 Spring Cloud Gateway学习

Spring Cloud Gateway学习笔记

2022-07-20 14:39:56 312

原创 JWT学习

JWT学习

2022-07-15 11:38:11 152

原创 面向过程、面向对象、面向接口编程对比学习

面向过程、面向对象、面向接口编程对比学习

2022-07-11 08:39:26 386

原创 JAVA基础:toString()、String.valueOf、(String) xx的区别

JAVA基础:toString()、String.valueOf、(String) xx的区别

2022-06-08 10:00:06 333

原创 MySQL中“:=”和“=”的区别

(一)结论:1)=只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用。2):=不只在set和update时时赋值的作用,在select也是赋值的作用。(二)效果验证1)验证“ := ”的作用2)验证“ = ” 的作用可见rownum都等于0, 是因为 num 不等于 num+1。当sql换成 上面的,num因为等于num了,所以所有记录的rownum均为1。...

2022-05-11 14:15:40 8552

原创 BeanFactory和FactoryBean

(一)BeanFactoryBeanFactory是一个工厂类接口,定义了IOC容器的最基本形式,并提供了IOC容器应遵守的的最基本的接口,职责包括实例化、定位、配置应用程序中的对象以及建立这些对象之间的依赖。在Spring中有很多具体的实现,在这些实现中对BeanFactory进行了功能扩展,例如:AbstractBeanFactory:抽象Bean工厂,绝大部分的实现类,都是继承于他 DefaultListableBeanFactory:Spring默认的工厂类 XmlBe...

2022-05-06 15:56:35 1371

原创 设计模式: 策略模式+工厂模式+模板模式应用实践

使用策略模式、工厂模式、模板模式对工程代码进行优化

2022-04-26 09:52:40 1369

原创 Java事件驱动模型框架实现

一、框架实现篇关键角色:事件源(XXXEvent):能够接收外部事件的源体,内部包含事件的类型。 事件监听器(XXXEventListener):能够接收事件源通知的对象。 事件分发器(EventDispatcher):维护事件类型与事件监听器列表的映射关系,接收事件并进行事件的派发。 事件监听器管理类(EventListenerManager):声明一系列的事件监听器,通过@EventAnnotation定义该事件监听器感兴趣的事件类型,最后通过反射的方式实现事件监听器自动注册到Eve.

2022-04-21 17:17:29 5793 12

原创 JAVA设计模式学习--008-构造器模式

一 、概念构造器模式(Builder Pattern)。其核心思想是将一个“复杂对象的构建算法”与它的“部件及组装方式”分离,使得构件算法和组装方式可以独立应对变化;复用同样的构建算法可以创建不同的表示,不同的构建过程可以复用相同的部件组装方式。二、编码import java.util.Set;/** * 使用构造器模式:保证一些非必需参数的灵活性,便于后期扩展* @ClassName: ParameterSet* @Description: 参数集合* @Autho.

2022-03-18 17:28:07 657

转载 浅析Java线程

Java线程模型并发不一定要依赖多线程(如PHP中很常见的多进程并发),但是在Java里面谈论并发,大多数都与线程脱不开关系。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。主流的操作系统都提供了线程实现,Java语言则提供了在不同硬件和操作系统平台下对线程操作的统一处理,每个已经执行start()且还未结束的java.lang.Thread类的实例就代表了

2022-02-15 08:12:39 125

原创 统一任务分发调度执行框架

项目中需要对多个基站进行管理,根据任务的执行时间情况,决定将耗时的任务统一改为异步调用,同时由于基站任务执行的特殊性,还需要针对需要到达基站的任务进行串行编排,保证一个基站同一时刻只有一个任务在执行,对于异步任务的提交、执行情况通过WebSocket消息机制及时通知前端用户。同时为了保证用户体验,针对不耗时的任务依旧采用同步方式调用。

2022-02-14 13:54:04 2131 1

原创 接口幂等性问题

Restful接口幂等性问题

2021-12-31 14:23:09 133

原创 第四篇:docker安装ES && Kibana

注意ELK三个组件的版本需保持一致:1 ES安装1.1 下载ES镜像docker pull elasticsearch:7.4.21.2 路径配置在宿主机创建ES配置文件夹1. 作用:用于同ES容器中的配置路径进行映射,后续在宿主机中进行配置文件操作,可同步到ES中;2. 操作命令:mkdir -p /mydata/elasticsearch/config在宿主机创建ES数据文件夹1. 作用:用于同ES容器中的数据路径进行映射,存放数据;2. 操作命令:mkdir -p

2021-12-23 14:20:57 1543

原创 第三篇:docker安装mysql容器(自定义端口)

第一步:下载镜像docker pull mysql:5.7第二步:创建实例并启动docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7第三步:进入mysql

2021-12-23 14:20:05 381

原创 第二篇:docker安装

1 前言在第一篇中,我们使用VirtuaBox和Vagrant在Windows宿主机上安装了一个Centos虚拟机,并通过相关网络配置,保证宿主机和虚拟机之间能够相互ping通。本篇我们在虚拟机中进行docker安装。官方地址:Get Started with Docker | Docker 官方文档地址:Docker Documentation | Docker Documentation 安装步骤文档地址:Install Docker Engine on CentOS | Docker D.

2021-12-23 14:16:27 542

原创 第一篇:使用VirtualBox+Vagrant安装配置Centos7

1.软件下载解压(过程略)2.常用命令初始化镜像:vagrant init centos/7 启动:vagrant up 重启:vagrant reload 连接:vagrant ssh3.网络配置3.1.查看宿主机IP地址打开一个CMD窗口,执行ipconfig命令,查看VirtualBox Host-Only NetWork下的IP地址3.2 配置更改更改Vagrantfile配置文件(在C:\Users${your_user_name}文件夹下),添加如下内容(实际上是将

2021-12-23 14:15:27 674

原创 Windows下搭建ElasticSearch伪集群(含批量启动/停止脚本)

目录1. 前置条件2. 安装包下载3. 解压缩及配置3.1 节点1配置3.1.1解压3.1.2配置 3.2.1 拷贝节点1文件夹3.2.2配置3.3节点3配置3.3.1 拷贝节点1文件夹3.1.2配置4.启动运行4.2 编写启动脚本 startall.bat4.3编写停止脚本 stopall.bat5. 连接(elasticsearch-head插件的使用)5.1 下载elasticse...

2021-12-21 17:29:38 1537

原创 JAVA设计模式学习--007-观察者模式

设计模式学习

2021-11-26 23:15:19 261

原创 【排序算法04】--快速排序

package com.lll.algorithms.sort;/** * @ClassName : QuickSort * @Description: 快速排序 * @Author: liulianglin * @Date: 2021/11/18 21:52 * @Version : 1.0 */public class QuickSort { private static void quickSort(int[] arr, int leftIndex, int rightI.

2021-11-19 16:08:24 212

原创 【排序算法03】--插入排序

package com.lll.algorithms.sort;import java.util.Arrays;/** * @ClassName : InsertSort * @Description: 插入排序 * @Author: liulianglin * @Date: 2021/11/19 14:49 * @Version : 1.0 * 思想: 将一个序列抽象为一个有序序列和无序序列, * 首次循环将序列的第一个元素当作有序序列,其他元素当作无序序列。 * .

2021-11-19 15:32:06 412

原创 [排序算法02]--选择排序

package com.lll.algorithms.sort;import java.util.Arrays;/** * @ClassName : SelectSort * @Description: 选择排序 * @Author: liulianglin * @Date: 2021/11/19 10:47 * @Version : 1.0 */public class SelectSort { public static void selectSort(int[] ar.

2021-11-19 14:38:04 404

原创 【排序算法01--冒泡排序】

package com.lll.algorithms.sort;import java.util.Arrays;/** * @ClassName : BubbleSort * @Description: 冒泡排序 * @Author: liulianglin * @Date: 2021/11/19 9:45 * @Version : 1.0 */public class BubbleSort { private static void bubbleSort(int[] ar.

2021-11-19 10:11:52 531

原创 利用队列实现栈

实现思路:1)准备两个队列 queue1, queue2(队列特性先进先出,栈的特性先进后出)2)入栈时,元素依次插入到queue1中3)出栈时,做如下处理: 3.1)如果queue2为空,则将queue1向queue2拷贝,剩最后一个元素返回 3.2)如果queue2不为空,则将queue2向queue1拷贝,剩最后一个元素返回直接上代码:import java.util.LinkedList;import java.util.Queue;/** * @Cl.

2021-11-18 00:00:24 229

原创 利用栈实现队列的出队入队

* 实现思路:** 1)准备两个栈stack1和stack2* 2)入队列时,数据先向stack1中push* 3)出队列时,先判断stack2是否是空的,* 3.1)如果是空的就将stack1中的元素依次向stack2中push(直至stack1为空),然后从stack2中弹出一个元素返回* 3.2)如果不是空的,说明stack1中的数据全部转到了stack2,直接从stack2中返回。* 后续插入直接插入到stack1中,当stack2中的元素空了之..

2021-11-17 23:33:39 460

原创 Java基础05--CopyOnWriteArrayList

2021-10-02 11:36:37 70

原创 Java基础07--(Fail-Fast机制和Fail-Safe机制)

1)Fail-Fast概念 Java集合的一种错误机制,当使用迭代器遍历集合的过程中,如果集合内元素发生变化,则会发生Fail-Fast抛出并发修改异常(Cocurrent Modification Exception)。工作原理 迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变modCount的值。每当迭代器使用hashNext()/next()遍历下一个元...

2021-10-02 10:45:52 89

原创 Java基础06--HashMap

2021-10-02 09:37:34 66

原创 JUC面试04--Atomic原子类及AtomicInteger源码分析

【说明:本系列文章所有思维导图均为纯手工打造,转载请注明出处】关于部分热心朋友提醒的几点说明1)有朋友反映说为啥我的博客很多都是只放一张图,对读者很不友好。这里说明下原因:本人很懒加上时间有限,为了保持博客编写速度尽可能高效,觉得思维导图在逻辑结构上更直观,图能表达的内容,不愿意再用文字赘述一遍; 本人习惯用思维导图的形式串联知识点,觉得通过文档目录来串联知识点并体现层级结构的方式比较麻烦; 本人博客所有内容均为自主学习过程中形成的思维导图笔记。2)有朋友反映说思维导图无法很好...

2021-09-30 23:18:30 126

原创 Redis学习08--字典的rehash过程

【说明:本系列文章所有思维导图均为纯手工打造,转载请注明出处】

2021-09-26 16:13:14 140

原创 手把手教你在Centos服务器搭建Redis集群

说明:因个人又穷又懒,只准备了一台服务器,如下集群实为伪集群,真实生产环境搭建原理相同,这里只是为了学习搭建流程。1.基础环境Linux系统:Centos7Redis版本集群环境 节点数量:6 运行端口: 36379、36380、36381、36382、36383、36384 2.Redis下载推荐官网下载:Redis3.安装包文件上传将redis-6.2.5.tar.gz上传到/opt/software/redis/cluster_workspace目录...

2021-09-23 22:52:26 1014

Java后端学习路线--01Java基础部分.xmind

Java后端学习路线之《Java基础部分》学习

2021-09-13

空空如也

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

TA关注的人

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