- 博客(182)
- 资源 (1)
- 收藏
- 关注
原创 JAVA基础:toString()、String.valueOf、(String) xx的区别
JAVA基础:toString()、String.valueOf、(String) xx的区别
2022-06-08 10:00:06
219
原创 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
6168
原创 BeanFactory和FactoryBean
(一)BeanFactoryBeanFactory是一个工厂类接口,定义了IOC容器的最基本形式,并提供了IOC容器应遵守的的最基本的接口,职责包括实例化、定位、配置应用程序中的对象以及建立这些对象之间的依赖。在Spring中有很多具体的实现,在这些实现中对BeanFactory进行了功能扩展,例如:AbstractBeanFactory:抽象Bean工厂,绝大部分的实现类,都是继承于他 DefaultListableBeanFactory:Spring默认的工厂类 XmlBe...
2022-05-06 15:56:35
533
原创 Java事件驱动模型框架实现
一、框架实现篇关键角色:事件源(XXXEvent):能够接收外部事件的源体,内部包含事件的类型。 事件监听器(XXXEventListener):能够接收事件源通知的对象。 事件分发器(EventDispatcher):维护事件类型与事件监听器列表的映射关系,接收事件并进行事件的派发。 事件监听器管理类(EventListenerManager):声明一系列的事件监听器,通过@EventAnnotation定义该事件监听器感兴趣的事件类型,最后通过反射的方式实现事件监听器自动注册到Eve.
2022-04-21 17:17:29
4413
8
原创 JAVA设计模式学习--008-构造器模式
一 、概念构造器模式(Builder Pattern)。其核心思想是将一个“复杂对象的构建算法”与它的“部件及组装方式”分离,使得构件算法和组装方式可以独立应对变化;复用同样的构建算法可以创建不同的表示,不同的构建过程可以复用相同的部件组装方式。二、编码import java.util.Set;/** * 使用构造器模式:保证一些非必需参数的灵活性,便于后期扩展* @ClassName: ParameterSet* @Description: 参数集合* @Autho.
2022-03-18 17:28:07
541
转载 浅析Java线程
Java线程模型并发不一定要依赖多线程(如PHP中很常见的多进程并发),但是在Java里面谈论并发,大多数都与线程脱不开关系。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。主流的操作系统都提供了线程实现,Java语言则提供了在不同硬件和操作系统平台下对线程操作的统一处理,每个已经执行start()且还未结束的java.lang.Thread类的实例就代表了
2022-02-15 08:12:39
88
原创 统一任务分发调度执行框架
项目中需要对多个基站进行管理,根据任务的执行时间情况,决定将耗时的任务统一改为异步调用,同时由于基站任务执行的特殊性,还需要针对需要到达基站的任务进行串行编排,保证一个基站同一时刻只有一个任务在执行,对于异步任务的提交、执行情况通过WebSocket消息机制及时通知前端用户。同时为了保证用户体验,针对不耗时的任务依旧采用同步方式调用。
2022-02-14 13:54:04
1502
原创 第四篇: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
1476
原创 第三篇: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
323
原创 第二篇: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
496
原创 第一篇:使用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
631
原创 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
1262
原创 【排序算法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
153
原创 【排序算法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
383
原创 [排序算法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
382
原创 【排序算法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
508
原创 利用队列实现栈
实现思路: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
159
原创 利用栈实现队列的出队入队
* 实现思路:** 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
370
原创 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
56
原创 JUC面试04--Atomic原子类及AtomicInteger源码分析
【说明:本系列文章所有思维导图均为纯手工打造,转载请注明出处】关于部分热心朋友提醒的几点说明1)有朋友反映说为啥我的博客很多都是只放一张图,对读者很不友好。这里说明下原因:本人很懒加上时间有限,为了保持博客编写速度尽可能高效,觉得思维导图在逻辑结构上更直观,图能表达的内容,不愿意再用文字赘述一遍; 本人习惯用思维导图的形式串联知识点,觉得通过文档目录来串联知识点并体现层级结构的方式比较麻烦; 本人博客所有内容均为自主学习过程中形成的思维导图笔记。2)有朋友反映说思维导图无法很好...
2021-09-30 23:18:30
84
原创 手把手教你在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
897
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人