自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 多版本同时维护的 Bug 修复源代码保存方案

问题描述在日常维护系统的过程中,我们经常需要修复他人提交的 Bug(因为自己写的都是 feature 嘛)。对于单个线上版本的项目,我们可以轻松地创建一个 bug 修复分支,修复完成后再将其合并到主分支即可。然而,当系统同时存在多个线上版本时,比如 V1.0.1、V1.0.2、V1.0.3、V1.1.0 等,或者需要针对特定版本进行定制开发时,按照原有的分支策略将导致分支数量激增,管理繁琐。...

2024-05-12 15:51:00 422

原创 线程、线程池以及CompletableFuture组合式异步编程

一、创建线程的三种常见方式1、继承Thread类创建线程类,继承Threadnew Thread().start()的方式启动线程public static void main(String[] args) { System.out.println("线程" + Thread.currentThread().getName() + "开始执行"); new T...

2020-12-31 23:35:00 269

原创 ElasticSearch基础语法

一、elasticsearch安装1、在docker安装elasticsearch拉取镜像$ docker pull elasticsearch:7.4.2 # 拉取elasticsearch$ docker pull kibana:4.7.2 # 拉取kibana,可视化工具基本配置$ mkdir -p /mydata/elasticsearch/config...

2020-12-31 21:46:00 257

原创 Linux学习--网络、进程、服务、软件管理

Linux入门--基础命令Linux入门--权限管理、任务调度、磁盘管理六、网络配置网卡配置文件在/etc/sysconfig/network-scripts/ifcfg-ens33netstat [-anp] # 查看系统网络状态 # -a:显示所有连线中的Socket; # -n:直接使用ip地址,而不通过域名服务器; ...

2020-08-07 22:30:00 148

原创 Linux入门--权限管理、任务调度、磁盘管理

Linux入门--基础命令三、权限相关3.1、基本命令chown <user>[:<group>] <filename> #修改文件的所有者和所属组chgrp <组名> <文件名> # 修改文件所在组chmod u=rwx,grw,o+x <filename> # 修改权限chmod 777 &l...

2020-08-06 23:52:00 93

原创 Linux入门--基础命令

一、Linux入门1.1、Linux目录结构及含义/bin 【重点】(/usr/bin、/usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令/sbin (/usr/sbin、/usr/local/sbin)s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。/home 【重点】存放普通用户的主目录, 在L...

2020-08-05 22:34:00 97

原创 MySQL优化--MVCC

MySQL优化--概述以及索引优化分析MySQL优化--查询分析工具以及各种锁七、MVCC7.1、必备知识7.1.1、什么是MVCC多版本并发控制(Multiversion concurrency control, MCC 或 MVCC),是数据库管理系统常用的一种并发控制,也用于程序设计语言实现事务内存。mvcc在MySQL的InnoDB引擎中的实现主要是为了提高并发性...

2020-08-04 23:51:00 354

原创 MySQL优化--查询分析工具以及各种锁

MySQL优化--概述以及索引优化分析三、查询截取分析3.1、查询分析方法观察,至少跑1天,看看生产的慢SQL情况。开启慢查询日志,设置阈值,比如超过5秒钟的就是慢SQL,并将它抓取出来。explain+慢SQL分析show profile运维经理 or DBA,进行SQL数据库服务器的参数调优。==总结慢查询的开启并捕获explain...

2020-08-03 23:09:00 187

原创 MySQL优化--概述以及索引优化分析

一、MySQL概述1.1、MySQL文件含义通过如下命令查看show variables like '%dir%';MySQL文件位置及含义名称值备注basedir/usr/安装路径character_sets_dir/usr/share/mysql-8.0/charsets/保存字符集目录datadir/var/lib/mysql/...

2020-07-31 23:57:00 103

原创 MySQL安装教程

一、安装包MySQL官网下载下载客户端和服务端,有rpm包和tar.gz两种二、安装可能与mariadb有冲突yum -y remove mariadb-libs.x86_64安装rpmyum -y install mysql-XXXX.rpm解压tar.gztar -xvf mysql-XXXX.tar.gz三、启动服务systemctl start mysq...

2020-07-31 16:09:00 74

原创 JAVA程序员必须要学会的网络知识

一、http协议1.1、HTTP报文格式1.2、HTTP请求报文方法方法(操作)意义OPTION请求一些选项的信息GET请求读取由 URL所标志的信息HEAD请求读取由 URL所标志的信息的首部POST给服务器添加信息(例如,注释)PUT在指明的 URL下存储一个文档DELETE删除指明的 URL所标志的资源TRA...

2020-07-30 17:18:00 358

原创 计算机网络学习--网络层

第一章 概述第二章 物理层第三章 数据链路层第四章 网络层第五章 传输层第六章 应用层第四章 网络层4.1、网络层提供两种服务虚电路连接面向连接的通信方式建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务数据报服务对比的方面虚电路服务数据报服务...

2020-07-30 14:50:00 133

原创 计算机网络学习--传输层

第一章 概述第二章 物理层第三章 数据链路层第四章 网络层第五章 传输层第六章 应用层第五章 传输层5.1、传输层协议概述运输层向它上面的应用层提供通信服务它属于面向通信部分的最高层,同时也是用户功能中的最低层为应用进程之间提供端到端的逻辑通信TCP/IP 的传输层有两个不同的协议:(1) 用户数据报协议 UDP (User Datagram Prot...

2020-07-30 14:48:00 100

原创 计算机网络学习--应用层

第一章 概述第二章 物理层第三章 数据链路层第四章 网络层第五章 传输层第六章 应用层第六章 应用层6.1、域名系统DNS因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS一个服务器所负责管辖的(或有权限的)范围叫做区(zone)每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射域名解析过程:主机向本地域名服务...

2020-07-30 14:46:00 94

原创 计算机网络学习--数据链路层

第一章 概述第二章 物理层第三章 数据链路层第四章 网络层第五章 传输层第六章 应用层第三章 数据链路层数据链路层使用的信道主要有以下两种类型:点对点信道。这种信道使用一对一的点对点通信方式。广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发3.1、点对点信道的数据链...

2020-07-30 14:45:00 262

原创 计算机网络学习--物理层

第一章 概述第二章 物理层第三章 数据链路层第四章 网络层第五章 传输层第六章 应用层第二章 物理层2.1、基本概念机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。电气特性 指明在接口电缆的各条线上出现的电压的范围。功能特性 指明某条线上出现的某一电平的电压表示何种意义。过程特性 指明对于不同功能的各种可能事...

2020-07-30 14:44:00 140

原创 计算机网络学习--概述

第一章 概述第二章 物理层第三章 数据链路层第四章 网络层第五章 传输层第六章 应用层第一章 概述1.1、网络的网络网络(network)由若干结点(node)和连接这些结点的链路(link)组成。互联网是“网络的网络”(network of networks)连接在因特网上的计算机都称为主机(host)1.2、网络与因特网网络把许多计算机连接在一起。...

2020-07-27 20:38:00 135

原创 Java环境配置

一、安装jdk1.81.1、准备工作在官网下载安装包,双击安装1.2、设置环境变量我的电脑->属性->高级系统设置->高级->环境变量1.3、配置JAVA_HOME系统变量C:\Program Files\Java\jdk1.8.0_251即为jdk安装路径1.4、配置CLASSPATH变量.;%JAVA_HOME%\lib;%JAVA_H...

2020-07-23 22:55:00 183

原创 Java8新特性

Java8新特性一、接口的默认方法在接口中新增了default方法和static方法,这两种方法可以有方法体1.1、static方法接口中的static方法不能被继承,也不能被实现类调用,只能被自身调用示例代码:static void staticMethod(){ System.out.println("staticMethod方法");}1.2、defau...

2020-07-22 21:42:00 97

原创 线程池基础

一、线程池基础线程池:3大方法、7大参数、4种拒绝策略1. 为什么会出现池化技术Java中的池大概有:线程池,连接池,内存池,对象池等。创建、销毁这种动作十分浪费资源,因此可以事先准备好一部分资源,谁要用就来直接取,取完了还回来,这就是池化技术。线程池的优点:降低资源的消耗提高响应的速度方便管理。2.线程池的三大方法(不推荐)//单个线程Exec...

2020-07-21 22:45:00 82

原创 线程的基本状态

一、线程的基本状态1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。4、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停...

2020-07-18 18:25:00 481

原创 多线程基础

一、常用锁Java提供了多种多线程锁机制的实现方式,每种机制都有优缺点与各自的适用场景,常见的有:synchronizedReentrantLockSemaphoreAtomicInteger等1.synchronized在Java中synchronized关键字被常用于维护数据一致性。synchronized机制是给共享资源上锁,只有拿到锁的线程才可以访问共享资源,...

2020-07-17 22:24:00 54

原创 Collections工具类和Arrays工具类

一、Collections工具类Collections 工具类常用方法:排序查找,替换同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合)1. 排序void reverse(List list)//反转void shuffle(List list)//随机排序void sort(List list)//按自然排序的升序排序void sort...

2020-07-16 23:53:00 74

原创 Java中的集合

一、Java中的集合集合接口集合框架定义了一些接口。本节提供了每个接口的概述:接口名称接口描述CollectionCollection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。Collection 接...

2020-07-15 23:53:00 68

原创 Java基础知识(二)

四、 Java类和对象1.面向对象简述​ 面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言。​ 但是在面向对象设计之前,广泛采用的是面向过程,面...

2020-07-14 23:38:00 181

原创 Java基础知识(一)

一、Java语言的特点简单性​ Java看起来设计的很像c++,取消了很多程序员很少使用的特征。例如:Java不支持go to语句,提供了break和continue语句以及异常处理。Java剔除了操作符重载以及多继承,以及不使用主文件,免去了预处理程序。在Java中数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使开发人员不...

2020-07-13 23:33:00 209

原创 09 设计模式 动态代理

动态代理之前学习过静态代理,发现有个缺点,每当需要代理一个类就需要创建与之相当的代理类,极大的增加了代码量。现在通过动态代理,可以通过极少的代码量实现所要的功能动态代理与静态代理拥有一样的角色:抽象角色、真实角色、代理角色首先定义一个抽象角色public interface Rent { public void rent();}再定义一个真实角色public c...

2020-06-20 10:30:00 45

原创 08 设计模式 静态代理

静态代理例如:在租房时候,不需要直接去找房东,只要去找中介,中介会将房子租给我们,而我们不必和房东接触,便可以租下来房子首先创建一个接口,代表租房这个事情public interface Rent { public void rent();}然后再创建一个类代表房东,实现了租房这个接口public class Landlord implements Rent{ ...

2020-06-19 23:04:00 48

原创 07 设计模式 桥接模式

桥接模式桥接模式,指的就是像桥一样将两个类关联起来,将抽象与实现分离,使得每个部分可以独立变化。采用桥接设计模式之前如上图所示采用桥接模式,将类分为品牌,品牌下分为苹果、联想等,电脑下分为台式机、笔记本和平板电脑等采用桥接模式之后就可以按照需要,自己进行组装代码如下:品牌接口public interface Brand { public void info();...

2020-06-19 21:54:00 70

原创 06 设计模式 适配器模式

适配器模式生活中的有的电脑缺少各种各样的接口,通过一些适配器便可以正常使用那些接口,例如:HDMI转VGA、USB转网线等适配器模式便是这种思路,通过创建Adaptee类代表要被适配的类,如:网线或VGApublic class Adaptee { public void net(){ System.out.println("连接成功"); }}...

2020-06-19 18:13:00 56

原创 05 设计模式 原型设计模式

原型设计模式原型设计模式:顾名思义,通过一个原型来建立对象。因为有些对象过于庞大,通过new关键字创立十分消耗资源,故采用原型设计模式,可以理解为克隆在Java中原型设计模式主要靠clone()方法进行进行clone需要注意的点:类本身需要实现Cloneable接口如果其中有对象就需要覆写clone()方法,否则就会出现改一个,全部都被改的情况。代码如下:@Da...

2020-06-19 16:47:00 43

原创 04 设计模式 建造者模式

建造者模式建造者模式就好像盖一栋房子,需要有设计师,图纸,施工队以及成品,在这其中:设计师负责确定流程图纸是一个施工的描述施工队是具体的动作成品是最后的结果图例如下:成品类:@Data@ToStringpublic class Product { String buildA = "默认值A"; String buildB = "默认值B"; ...

2020-06-19 16:02:00 43

原创 03 设计模式 抽象工厂

抽象工厂建立一个最高层级的工厂,用来生产不同产品的工厂,然后再建立一个产品规范,用来规定生产的产品需要有什么样的功能。这样做的好处就是不需要关心创建的细节,并将一个系列的产品一起创建产品的规范:/*电脑产品*/public interface ComputerProduct { public void playGame(); public void codin...

2020-06-19 11:34:00 48

原创 02 设计模式 工厂模式

工厂模式静态工厂使用工厂前如下图:在使用静态工厂之前我们创造对象都需要自己使用new关键字进行创建,而使用工厂之后便不需要自己进行创建,直接在工厂中取出成品便可以直接使用,不需要关心创造细节;例如:我想买一台电脑,在没有工厂的时候我只能自己做,需要什么样的CPU、什么样的内存等等,这些都需要我们自己去配置;而在有了工厂之后便不需要这么麻烦了,我想买电脑,直接去工厂里买就可以,不...

2020-06-19 10:40:00 69

原创 01 设计模式-单例模式

单例模式饿汉式package com.hxh;public class Hungry { private static final Hungry HUNGRY = new Hungry(); private Hungry() { System.out.println("创建"); } public static Hungry g...

2020-06-18 19:10:00 48

原创 06 Spring Boot 整合Shrio

整合Shrio整合方法导入依赖<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-core --><dependency> <groupId>org.apache.shiro</groupId> <artifactId>shir...

2020-06-14 17:17:00 51

原创 05 Spring Boot 整合Spring Security

整合Spring Security整合方法创建项目时选择security依赖或在pom中添加security依赖建立SpringSecurityConfig类,继承WebSecurityConfigurerAdapter方法在刚刚创建的类上添加@EnableWebSecurity注解设置授权规则@Overrideprotected void configur...

2020-06-13 18:37:00 51

原创 04 Spring Boot 整合MyBatis

整合MyBatis注意点在相应Mapper接口上通过@Mapper注解进行注入;或在程序入口添加@MapperScan(com.hxh.Mapper),这其中的所有接口都会被扫描XXXXMapper.xml存放在resources/MyBatis/mapper目录下整合方法配置整合依赖<dependency> <groupId>org....

2020-06-13 15:15:00 49

原创 03 Spring Boot 整合Druid

整合Druid整合Druid方法在Maven中配置Druid依赖<!-- https://mvnrepository.com/artifact/com.alibaba/druid --><dependency> <groupId>com.alibaba</groupId> <artifactId>dr...

2020-06-13 11:34:00 59

原创 02 Spring Boot整合JDBC

整合jdbc整合方法创建项目,选择相关依赖:Spring Web、JDBC API、MySQL Driver在yaml中配置相关参数spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/db_test?serverTimezone...

2020-06-12 20:32:00 49

空空如也

空空如也

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

TA关注的人

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