自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我能在河边钓一整天的鱼

欢迎来到我的酒馆

  • 博客(822)
  • 资源 (1)
  • 收藏
  • 关注

原创 CentOS7常用命令大全

常用命令1. cd /etc/sysconfig/network-script/ 切换到网卡所在目录2. ls 查看当前目录下的所有文件和文件夹3. vi /etc/sysconfig/network-scripts/ifcfg-ens33 编辑网卡配置4. vi模式下,按Ins键 启动编辑5. vi模式下,按esc键 退出编辑6. ...

2019-07-31 08:25:30 2716 18

原创 IDEA常用快捷键(winodws+mac版)

常用快捷键一览Alt+回车:导入包,自动修正代码Ctrl+Y:删除光标所在行Ctrl+D:复制光标所在行,插入光标位置下面Ctrl+Alt+L:格式化代码Ctrl+/:单行注释/** + enter: 方法注释快捷键Ctrl+Shift+/:选中代码注释,多行注释,再次按取消注释Alt+Ins:自动生成代码,toString,get,set等方法A...

2019-04-24 13:49:53 645 23

原创 小技巧——如何快速删除大文件

一、shift+右击要删除的文件,选择在此处打开Powershell窗口二、打开之后,输入cd..跳到上一层路径。 输入 rimraf + 要删除的这个文件夹名字。稍等一会就删掉了~没有rimraf命令,请全局安装npm install -g rimraf...

2019-03-26 17:39:50 4593 24

转载 关于如何设置IntelliJ IDEA 在同一窗口查看多个项目

关于如何设置IntelliJ IDEA 在同一窗口查看多个项目_ztian001的博客-CSDN博客

2021-11-09 15:29:28 514

原创 《mybatis》

#{}和${}的区别是什么?${}是字符串替换,#{}是预处理;Mybatis在处理${}时,就是把${}直接替换成变量的值。而Mybatis在处理#{}时,会对sql语句进行预处理,将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;通常一个mapper.xml文件,都会对应一个Dao接口,这个Dao接口的工作原理是什么?Mapper 接口的工作原理是JDK动态代理,Mybatis运行时会使用JDK动态代理为Mapper接口生成代理对象proxy,代

2021-10-11 10:33:59 300

原创 《kafka》

kafka如何保证消息不丢失<1>producer。生产者默认有一个位于内存的buffer用来缓存未发送的消息,但是这块内存区域断电即失,当producer宕机就完了。生产者要保证消息不丢失,可以把异步发送改成同步发送消息。也可以将消息先写到本地磁盘再写到buffer,这样即使buffer丢失,磁盘中也持久化了记录。<2>broker。单台情况下,kafka中的数据是异步批量的刷盘到磁盘中。kafka的刷盘没有同步,我们可以通过控制刷盘频率来缓解丢失出现时,丢失的数据量。..

2021-10-08 13:32:57 295

原创 《redis》

1.怎么保证redis中的key是热点key如何保证redis中存放的都是热点数据 - neozheng - 博客园

2021-09-28 18:54:09 143

原创 《MySQL》

1.MySQL B+树基本概念☆B树与B+树_我能在河边钓一整天的鱼-CSDN博客2.聚簇索引和非聚簇索引一分钟明白MySQL聚簇索引和非聚簇索引 - 阿伟~ - 博客园3.什么是回表简单来说就是数据库根据索引(非主键)找到了指定的记录所在行后,还需要根据主键再次到数据块里获取数据。...

2021-09-28 13:50:19 132

原创 《JVM》

1.jvm体系结构堆、方法区、虚拟机栈、本地方法栈、程序计数器堆和方法区线程共享,存在垃圾回收。虚拟机栈、本地方法栈、程序计数器线程私有,不存在垃圾回收栈:后进先出。程序执行要先入栈。8大基本类型+对象的引用变量存在于栈中堆:堆中存放的是对象。堆分新生代(伊甸区、幸存者1区、幸存者2区)、老年代、元空间。jdk1.7元空间叫永久区,jdk1.8改名元空间,并且1.8版本常量池在元空间中。方法区:存储类的结构信息,常量,编译器编译后的代码等数据。程序计数器:每个线程有一个。它...

2021-09-19 17:02:36 109

原创 《Java基础》

什么是值传递,什么是引用传递面试官:兄弟,说说Java到底是值传递还是引用传递 - 沉默王二 - 博客园

2021-09-18 15:36:23 143

原创 《springboot》

1.springboot的功能优点1.可以以jar包的形式独立运行项目2.内嵌tomat或者jetty,无需以war包形式部署3.starter pom简化了maven依赖的导入2.springboot的starter是做什么的?诞生starter原因是当不同项目互相引入jar包时每次都需要改变@ComponentScan注解中的参数3.springboot启动原理-自动装配原理(启动后自动装配)面试----SpringBoot自动装配原理_小白咯..

2021-09-17 18:09:47 143

原创 《多线程》

1.聊一聊多线程一块共享空间或一个共享变量被多条线程操作。多线程的程序要想让其正确运行,关键在于保证线程执行过程中的 可见性,原子性常用的volatile就是保证线程间“可见性”的 同步关键字,但由于每一个线程执行都不是原子的,导致多个线程并发执行下,会出现“写覆盖”的现象。这时就要使用基于CAS原理的各种方法来保证原子操作了。例如JUC包中Atomic接口下的Integer实现类等等。CAS意为“比较并交换”,工作内存每次把值写回到主存前,都会先判断:主存中的当前值是否..

2021-09-16 22:01:44 129

原创 Java比较两个对象并获取其中不相等的字段

1.添加 maven 依赖<dependency> <groupId>com.github.dadiyang</groupId> <artifactId>equator</artifactId> <version>1.0.3</version></dependency>2.初始化并调用方法Equator equator = new GetterBaseEquator..

2021-09-08 17:57:10 565

原创 mybatis 批量更新操作(如果防止druid禁用多次重复更新)

1.配置文件添加开启批量操作参数2.重写druid配置类(前提当然是你项目中已经引入了druid的jar包)package com.apus.antivirus.admin.common.config;import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.wall.WallConfig;import com.alibaba.druid.wall.WallFilter;import or...

2021-05-19 14:15:58 562

原创 SpringBoot集成XXL-JOB(自用)

目录1.引入jar包2.配置yml3.代码层面新建一个jobHandler类4.管理控制台之token配置5.管理控制台之token配置6.管理控制台之任务管理7.任务的执行与启动这篇文章主要是写给我自己的。因为我们公司的job无需代码配置。导包即用~XXL-JOB这款定时任务调度中间件是使用思想是。你自己配置好一个名为job的java项目。然后把这个java项目打包,引入到你实际业务开发到项目中。我们公司的xxl-job使用步骤如下:1.引入jar包..

2021-04-02 12:20:57 466

转载 JDBC连接数据库 mysql serverTimezone 时差问题

JDBC连接数据库 mysql serverTimezone 时差问题遇到一个问题:项目jar包扫描后,升级了好多jar包,包括mysql的驱动jar包升级到了8.0版本以上。升级后从mysql中查出的时候,全都比数据库的时间多13小时,而且这些时间存到数据库的时间,有些是正确的时间,有时比正确时间少13小时,这样返回给前端的时间就不准确,解决这个问题只要在springboot的数据库连接配置中增加一段配置就能解决问题spring: datasource: url:jdb...

2021-01-29 15:04:21 424

原创 比较GateWay和Zuul

1.Gateway由springcloud alibaba创建、而Zuul由springcloud netfix创建2.Gateway构建于Spring5、Zuul构建于Servlet2.53.Gateway使用非阻塞API,支持websockets,支持长连接 Zuul基于阻塞式API,不支持长连接

2020-12-29 18:58:25 365 1

原创 应该如何去熟悉一项功能

工作中,经常遇见一种情况。那谁,你去熟悉熟悉xxx功能,这功能可能跟那块有空,谁了解,不会你去问问他。我们应该从哪入手呢?1.去了解这个功能干了件什么事。举个例子:有一个定时任务功能,定时的执行,把数据封装为一个实体传给另一个接口。2.大家应该都做到了第一点,但第一点并不能解决问题。你需要顺着这个功能找前因后果。3.前因:定时任务要执行的数据从哪里来?4.后果:他最终传递给接口的数据是什么?5.过程中:定时任务是按照什么规则跑的?...

2020-11-04 15:40:08 213 1

原创 分清权限系统的用户和角色

什么是用户哪个人登录系统,哪个人就是用户。什么是角色角色代表访问权限。说白了,合理的权限系统当新建用户后,此用户是没有任何权限的。他得和“角色”绑定。...

2020-11-04 11:04:19 306 2

原创 A.compareTo(B)经典案例

A.compareTo(B)用来比较A是否大于B他返还的是一个Boolean值,如果A大于B,返还1。如果A等于B,返还0。如果A小于B,返还-1案例if(CommonData.DIFFQTY_ONE.equals(reqDto.getDiffQty())){ //已配齐 respDtos = respDtos.stream().filter(x -> BigDecimal.ZERO.compareTo(x.getUnMatchQuantity()) >...

2020-11-03 14:24:20 4238 1

原创 ArrayList的扩容机制

ArrayList的扩容ArrayList使用时会先初始化一个空数组,长度为0。第一次插入时,将其容量设置成10。每次进来一个元素都会判断MinCapacity(当前元素数)是不是比elementData.length(数组容量)大,如果大了进入到grow方法中。会copy一个原数组,数组长度设置为1.5倍,且不能超过最大数组长度。扩容之后他会把所有元素copy一份赋值给新的数组,并返回true未完待续。。。...

2020-09-27 18:08:24 238 1

原创 ES6基础

用let声明变量1.let声明的变量有严格的作用域,而var会“越域”2.let只能声明一次,而var可以多次声明变量3.var会变量提升(代码执行顺序会改变),let不存在变量提升const代表常量解构表达式 const person = { name: "jack", age: 21, language: ["java","js","css"] ...

2020-09-20 20:41:41 138 2

原创 Gateway网关的使用

目录网关的作用Gateway的工作流程使用Gateway组件网关的作用路由、权限校验、过滤、限流、监控Gateway的工作流程一个请求发送到Gateway,需要先进行断言(HandlerMapping)。如果断言为真可以交给Handler来处理。之后通过一系列Filter过滤和加工请求,发送给另一端使用Gateway组件配置nacos注册中心配置gateway断言和过滤网关的启动类排...

2020-09-20 20:06:42 564 2

原创 IDEA如何配置gitignore

1.聚合工程在父工程的gitignore文件中配置要忽略的内容target/pom.xml.tagpom.xml.releaseBackuppom.xml.versionsBackuppom.xml.nextrelease.propertiesdependency-reduced-pom.xmlbuildNumber.properties.mvn/timing.properties.mvn/wrapper/maven-wrapper.jar**/mvnw**/mvnw.c...

2020-09-19 16:56:06 1380 1

原创 Git的简单使用——从码云创建项目

目录码云IDEA码云1.新建一个仓库IDEA配置Git克隆项目输入路径和克隆位置即可成功获取到了码云上的项目~

2020-09-19 15:16:52 155 1

原创 Git的安装与配置

1.安装一般开发只需要选择安装路径即可,其他无脑下一步安装成功2.在Git官网注册账号3.打开GitBash4.配置用户名和git上一致git config --global user.name "liutongssss"5.配置邮箱git config --global user.email "邮箱@163.com"6.生成SSH免密密钥ssh-keygen -t rsa -C "邮箱@163.com"然后敲三下回车,显...

2020-09-19 14:58:37 123 1

原创 基于Docker安装Redis

安装步骤1.下载镜像docker pull redis2.创建目录mkdir -p /mydata/redis/conftouch /mydata/redis/conf/redis.conf3.创建容器docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \ -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \ -d ...

2020-09-19 11:16:19 120 1

原创 Docker容器的开机自启动设置

目录基于Docker的中间件运行逻辑设置Docker开机自启设置容器随Docker启动而自启举个栗子基于Docker的中间件运行逻辑一般我们在linux上使用Docker。Docker版本的中间件(比如mysql、redis)要想运行必须遵循以下步骤。Linux启动——Docker服务启动——容器启动设置Docker开机自启sudo systemctl enable docker设置容器随Docker启动而自...

2020-09-19 10:36:17 395 1

原创 Docker安装MySQL5.7

环境CentOS7Docker社区版安装步骤下载镜像docker pull mysql:5.7查看镜像启动容器注意:这里我把mysql的log、data、conf文件都进行了本地文件挂载,以后就可以直接操作本地文件让Docker生效了~sudo docker run -p 3306:3306 --name mysql \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/...

2020-09-19 10:06:23 159 2

原创 Java实现快速排序

import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] arr = {-9,78,0,23,-567,70, -1,900, 4561}; quickSort(arr,0,arr.length-1); System.out.println("arr="+ Arrays.toString(arr)); } public static void qu.

2020-09-18 17:59:36 119 1

原创 比较K8S和DockerSwarm

K8S和DockerSwarm都是用来解决容器集群化部署相关问题的,他俩有啥区别?1.K8S可处理的DockerImages在100-1000个。DockerSwarm可处理的DockerImages在10-20个2.K8S的界面管理工具效果更加直观3.DockerImages配置比K8S简单...

2020-09-13 14:49:48 3817

原创 RabbitMQ的事务机制

RabbitMQ基于AMQP协议。该协议实现了事务机制。其事务主要由三部分组成txSelect:用户将当前的channel设置为transaction模式txCommit:用于提交事务txRollback:用于回滚事务生产者代码演示public class TxSend { private static final String QUEUE_NAME = "test_queue_tx"; public static void main(String[] ar...

2020-09-12 16:41:35 619

原创 redis集群哈希一致性算法和哈希槽

先说普通哈希算法:让数据id的哈希值和redis集群的个数取模,得到的是几这个数据就存放在哪个redis服务器上普通哈希算法存在数据迁移的问题,即当集群数量增加或减少,原来数据的key与Redis序号对应的集群关系会改变,可能第一次数据1落在0号Redis上,第二次数据1就落在了2号机器上。这样就会出现”缓存穿透“一致性哈希算法一致性哈希算法首先弄了一个虚拟环,环上有n个节点,比如2的32次方个节点。这个环仅仅是逻辑上的一个算法。它先用redis机器序号+redis的ip生成唯一的一...

2020-09-10 10:21:35 751

原创 Dubbo的SPI机制

SPI是什么SPI全称Service Provider Interface,java本身就提供了一种服务发现机制。SPI的本质是接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在程序运行是,动态为接口替换实现类。正因次特性,我们可以通过SPI机制为程序提供扩展。Dubbo通过SPI机制加载所有组件。但Dubbo的SPI是对JDK原生SPI的增强,可实现对Dubbo功能的扩展。...

2020-09-09 16:07:42 104

原创 Mybatis的三种执行器

Mybatis的持久层操作由三部分组成:连接数据源——执行语句——操作执行器SimpleExecutor:每次执行update或select都会开启一个statement对象,用完立刻关闭statement对象ReuseExecutor:执行update或select前,以sql作为key查找Statement对象,存在就使用不存在就创建,用完后不关闭,放置在Map中供下一次使用。BatchExecutor:执行update(没有select,JDBC批处理不支持select)...

2020-09-09 12:00:21 571

原创 Synchronized锁的升级

目录什么是锁升级什么是Mark Word锁升级的过程什么是锁升级使用Synchronized会让其他线程阻塞,这样很影响程序的总体效率。因此jdk1.6以后优化了Synchronized机制即——锁升级锁升级的过程为:无锁=》偏向锁=》轻量级锁=》重量级锁什么是Mark WordMark Word用来存储对象运行时数据,用来记录对象运行时的一些参数,如:GC年龄,HashCode,锁标志,栈中的指针等锁升级的过程...

2020-09-05 10:33:13 156

原创 Git的工作流程

1.在工作目录中添加、修改文件2.将需要进行管理的文件放入暂存区域3.将暂存区域的文件提交到git仓库git管理文件的三种状态:已修改、已暂存、已提交

2020-08-24 16:11:37 132

原创 比较Redis和Memcached

存储方式上Memcached会把数据全部存到内存中,断电后会挂掉,数据不能超过内存大小。Redis部分数据存在硬盘中,采用RDB和AOF两种持久化方式,保证了数据的持久化。数据支持类型上Memcache对数据类型的支持简单,只支持key-value。而Redis支持5+3种底层模型不同Redis直接构建了自己的VM机制Value大小不同Redis可达1G,Memcache只有1M...

2020-08-24 09:15:15 135

原创 Redis的淘汰策略与过期策略

目录淘汰策略过期策略比较淘汰策略与过期策略淘汰策略最多使用的是volatile-lru:从过期时间中选择最近最少未使用的数据淘汰以及:volitile-ttl:过期时间最短的数据将会被淘汰过期策略定时过期 惰性过期(只有当一个key被访问时,才能判断这个key是否过期) 定期过期(定期扫描,扫描到过期的key再丢弃)比较淘汰策略与过期策略1.内存淘汰策略和内存过期策略互不影响2.内存淘汰用来处理内...

2020-08-24 08:59:39 176

原创 浅谈Redis如何实现一致性

目录一分为二Redis和MySQL的一致性Redis如何保证主从数据的一致性一分为二Redis的一致性分两个方面,一是Redis和MySQL的一致性;另一个是Redis集群主从的一致性Redis和MySQL的一致性好比你有两盒益达,一盒放公司,另一盒放家。每次吃一颗,但你一定每次都依次让家和公司的糖递减。这样当然会造成数据不一致的现象。解决方法是我们规定:redis的数据来源于mysql,想更新数据要先更mysql再更新到redis中...

2020-08-23 21:14:43 1040

Ubuntu16.04安装文档

1. 创建虚拟机 2. 安装Ubuntu系统 设置光盘镜像: 点击“开启此虚拟机”。 输入主机名: 输入用户名: 输入密码:itcast123 确认密码: 选择不更新: 至此,安装完成。 3. 安装完成后的配置 3.1. 设置root用户的密码 设置root用户的密码为root 3.1.1设置静态IP https://blog.csdn.net/Delicious_Life/article/details/104603312 3.2. 设

2020-09-18

空空如也

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

TA关注的人

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