自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 比较常用的Git指令

1、指定远程分支创建本地分支git checkout -b 本地分支名x origin/远程分支名x可能出现fatal: Cannot update paths and switch to branch ‘release-2.92.1.1’ at the same time.问题,是因为未检测到最新的分支信息。配合 git fetch 先拉取最新分支信息后操作。2、查看本地分支与远程分支的映射关系git branch -vv3、建立追踪关系,在现有分支与指定的远程分支之间git branch

2021-08-25 15:05:32 529

原创 git stash常用指令

有时需要临时切换下分支,但是不想提交,可以使用git stash暂存本地分支的修改git stash save “xxxxxx” 暂存本地修改,可使用save添加备注,以防更好的标记(此指令只会暂存被版本管理的文件,可以适用git add . 将新建的文件等先添加版本控制后操作)git stash list 查看目前stash的列表git stash pop 恢复之前缓存的修改,并将对应stash删除,默认为第一个stash。git stash pop stash@{$num}可以指

2021-08-13 17:04:56 364

原创 npm run 时报错:JavaScript heap out of memory

刚开始接触vue开发,弄了几天后npm run dev直接就报JavaScript heap out of memory,刚开始还能忍,重启下就好了。可是受不了改一点东西就报错重启,还耗时,网上搜索了好久,一直不行,唉也是醉了。好不容易解决了,给后边的同学提供下方案吧,毕竟因为这玩意浪费时间真的是没必要。npm install -g increase-memory-limit(全局安装 increase-memory-limit)increase-memory-limit (在项目目录中执行)通过上

2021-08-06 10:49:50 1495

原创 上传csv文件并解析

思路:先将csv文件上传到本地路径后,然后进行读取解析,可删除可不删除示例代码:1、上传文件到本地 MultipartFile file = null; //上传的文件,直接从方法参数中获取 if (file == null) { throw new RuntimeException("文件为空"); } String fileName = file.getOriginalFilename(); Strin.

2021-04-29 13:31:22 1264

原创 使用AtomicReference自己实现锁

主题思想:利用AtomicReference自带的CAS机制,实现类似于ReentrantLock的锁,当前线程进入时,CAS验证是否有其他线程持有锁,为null则让当前线程持有,不为null,线程自旋。解锁同理将持有线程置为NULL即可。package com.zcy.controller;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomi

2021-04-23 14:14:20 174

原创 数据库主从同步原理解析

面试官:你们数据库有没有用到主从同步呢?我:没有。结束…现在大多数公司数据库都是主从同步,读写分离的。今天就来总结一道面试高频题目:数据库主从同步的原理是什么?主从复制原理:上边这张交互图就清楚的标记出了Master节点如何同步到Slave节点首先Master上的修改、删除、新增操作都会被记录到一个叫做binlog的文件中,它是一个二进制日志文件Slave通过I/O线程读取binlog文件并写入到自己的relaylog(中继日志)中主库会生成一个 log dump 线程,用来给从库 .

2021-04-02 14:45:36 2913 2

原创 Shell中${}截取变量的相关操作记录

今天在配置Jenkins自动部署时使用到了shell脚本方式,因此记录一下截取git代码分支命名时使用到的命令${file##*/}。例如如下代码:file=/dir1/dir2/dir3/my.file.txt常用的截取操作如下:

2021-03-30 09:38:12 178

原创 进程间的几种通信方式

1. 管道ps -ef|grep mysqlLinux 命令中的「|」这个竖线就是一个管道。写入的数据都是缓存在内核中,另一个进程读取数据时候自然也是从内核中获取,同时通信数据都遵循先进先出原则, 管道这种通信方式效率低,不适合进程间频繁地交换数据2.消息队列(1) 消息队列不适合比较大数据的传输,因为在内核中每个消息体都有一个最大长度的限制(2) 消息队列通信过程中,存在用户态与内核态之间的数据拷贝开销,因为进程写入数据到内核中的消息队列时,会发生从用户态拷贝数据到内核态的过程,同理另一进程.

2021-03-24 09:58:25 511 2

原创 多线程的ThreadLocal、ReentrantLock、volatile、Synchronized

ThreadLocal:ThreadLocal的作用主要是做数据隔离,填充的数据只属于当前线程,变量的数据对别的线程而言是相对隔离的,在多线程环境下,防止自己的变量被其它线程篡改。Spring框架里面就是用的ThreadLocal来实现这种隔离,主要是在TransactionSynchronizationManager这个类里面简单原理:每个线程Thread都维护了自己的threadLocals变量,所以在每个线程创建ThreadLocal的时候,实际上数据是存在自己线程Thread的thread..

2021-03-16 11:00:50 259 1

原创 java四类权限修饰符

java四类权限修饰符访问权限类包子类其他包public√√√√protect√√√×不写类型√√××private√×××最容易忘的就是中间两种,特此备注一下。

2021-03-11 10:46:10 83

原创 如何在idea中使用fork工作

正常开发需要fork一个自己的项目,提交代码提交到自己fork的分支上,提交pr后由管理员merge到主干分支,目前在本地检出的是源仓库的git项目,如何切换到fork之后的项目到本地进行开发呢?关联远程库 git remote add [分支名称如:origin] [远程git的地址]git remote -v 检查是否关联成功git fetch 有时会有延迟,通过git fetch进行拉去,查看idea右下角是否有新建的分支名称git branch -r 查看远程分支是否包含新建分支

2021-03-04 17:17:54 2531 1

原创 如何使用DockerFile文件生成镜像

如何使用DockerFile文件生成镜像DockerFile参数含义FROM:指定创建镜像的基础镜像MAINTAINER:Dockerfile作者信息ADD 指令和 COPY 的使用格式一致(同样需求下,官方推荐使用 COPY)COPY:复制指令,从上下文目录中复制文件或者目录到容器里指定路径ADD :在源文件为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 目标路径ENV:设置环境变量,定义了环境变量,那么在后续的指令

2021-01-15 17:25:59 888

原创 安装虚拟机时Centos镜像下载地址

CentOS 官方下载地址:https://www.centos.org/download/Centos国内下载源:http://man.linuxde.net/download/CentOShttp://mirrors.btte.net/centos/7/isos/x86_64/http://mirrors.cn99.com/centos/7/isos/x86_64/http://mirrors.sohu.com/centos/7/isos/x86_64/http://mirrors.al

2020-12-16 09:44:29 582

原创 设计模式之:理解三种工厂模式原理

首先网上的各种理论感觉没有那么好理解,每个博客的术语也都千奇百怪,直接通过代码演示最直接,最好理解,然后你再想去看理论,就轻松的很了。核心思想就是:代替原来的new对象的方式,通过工厂去生成,看起来不是new而已。1. 工厂模式(1) 简单工厂模式( 静态工厂模式 )在简单工厂模式中可以根据参数的不同返回不同的实例,这种方式最简单,只是进行了简单的封装,平时咱们也都用过类似的思想步骤:定义规范接口类或父类 -> 子类实现 ->创建工厂类 ->overpublic in

2020-12-02 17:28:37 383

原创 idea将项目添加到GitHub步骤

idea将项目添加到GitHub步骤IDEA方式Git命令方式git init初始化本地仓库git add .git commit -m “提交说明”git remote add origin 远程仓库地址连接到远程仓库并为该仓库创建别名 , 别名为origin . 这个别名是自定义的,通常用origingit push origin master后边提交就按正常 add、commit、pull、push操作...

2020-11-30 17:04:26 257

原创 Docker常用指令分析

Docker常用指令Docker 镜像使用docker images列出本地主机上的镜像,REPOSITORY TAG IMAGE ID CREATED SIZEubuntu 14.04 90d5884b1ee0 5 days ago 188 MBREPOSITORY : 表示镜像的仓库源**TAG:**镜

2020-11-25 13:09:12 5291

原创 横表和纵表的相互转换

横表和纵表的相互转换SQL脚本# 横表CREATE TABLE `table_h2z` (`name` varchar(32) DEFAULT NULL,`chinese` int(11) DEFAULT NULL,`math` int(11) DEFAULT NULL,`english` int(11) DEFAULT NULL) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;/*Data for the table `tabl

2020-11-19 15:24:23 387

原创 jackson多态解析问题及解决方案

jackson实现多态解析类结构:接口类:Criteriapublic interface Criteria { //自己的接口}实现类1:AndCriteria@Datapublic class AndCriteria implements Criteria { //实现的接口}实现类2:OrCriteria@Datapublic class OrCriteria implements Criteria { //实现的接口}场景controller层有一个接

2020-11-18 09:32:11 6666

原创 IntelliJ IDEA 官方Default 快捷键

IntelliJ IDEA Default 快捷键背景:之前一直使用idea但是快捷键还是使用的继承eclipse快捷键方式,今天被同事吐槽,说忘记eclipse吧,得改成idea了,还是尝试改变下哈哈网络上有总结好的各种操作系统的ide快捷键,下边这是截的window上的图,可能会有点小,链接地址是:https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf现用

2020-10-20 16:19:57 8961

原创 JUC包--BlockingQueue的使用样例

JUC包–BlockingQueue的使用样例    系统中有业务需要实现队列,引入中间件又没有太大必要,因此直接使用jdk自带的类,之前也未使用过,因此将使用的类记录下,以供后边当工具类使用。在新增的Concurrent包中,BlockingQueue(就是个队列而已)很好的解决了多线程中数据的安全问题。线程操作类@Component@Slf4jpublic class FlowQueue implements Runnable { private final Bl

2020-10-19 10:00:56 9361

原创 Java泛型中T、E、K、V、?的含义

Java泛型中T、E、K、V、?的含义首先解释下源码中比较常见的两个形式含义:List<? extends T>当声明泛型使用的是super,是规定了类型下界,即该数组元素的类型下限是T,后面定义装载的元素类型必须是T本身或者T的父类。List<? super T>当声明泛型使用的是extends,是规定了类型上界,即该数组元素的类型上限是T,后面定义装载的元素类型必须是T本身或者T的子类。下边进入正题:所谓的这些T、E、K、V、?全都属于java泛型的通配符,其实换成任何字母结果

2020-10-16 16:56:17 7009 3

原创 Typora从下载到使用实战

简介  一直被安利typro,看到大佬们也都在使用,今天就下载了使用了一下,真香!!刚开始上手可能快捷方式不是很熟悉,过段时间你就会发现,这玩意比word强多了,各种简单、美观的代码操作,真是为程序员量身定做啊。同时这玩意写好了可以直接上博客,完美。。下载官网地址:https://www.typora.io/选择自己的系统版本下载即可使用常用操作1、有序列表输入数字+“.”之后输入空格2、无序列表输入-之后输入空格3、生成表格ctrl+t4、斜体字*文字*5

2020-08-28 10:46:10 11424

原创 一文搞懂java中的高大上技术“反射”

反射的概念​ JAVA反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;java中应用的几个场景:Spring 框架中bean的初始化用到了反射破坏单例模式是我们也用到了反射获取标注的注解的类时也用到了反射JDBC连接数据反射的基本使用Java 反射的主要组成部分有4个:Class:任何运行在内存中的所有类都是该 Class 类的实例对象,每个 Class 类对象内部都包含了本来的所有信息。记着一句话,通过反射干任

2020-08-21 16:21:36 8954

原创 windows下之定时执行bat脚本

前言  今天闲来无事,在自己windows上写了个bat脚本玩玩。写完了想定时跑一个,一想java中倒是有定时器,不过这不还得弄个项目写个定时任务??想了想系统应该有自带的可以跑的定时器吧,不然怎么设置一些开机自启动的东西呢?  上网一搜果然有哈哈schtasks命令配置  schtasks可以设置脚本和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。schtask命令使用方法可以在cmd

2020-08-20 14:31:06 49145 11

原创 git reset命令三种命令的区别

idea中回退版本reset type有三种类型mixed、soft 、hard,那三种类型有什么区别呢?下边来详细说一下mixed默认选中的类型,会将工作目录的修改、暂存区的内容(git add操作提交的地方)以及由 reset 所导致的新的文件差异,都放进工作目录。比如:第一次提交了a文件第二次提交了b文件第三次提交了c文件现在reset到第一次提交,b和c文件都会放到工作目录,将之前提交的版本文件全部恢复到未暂存状态soft回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不

2020-08-17 17:32:12 4144

原创 springboot启动jar修改配置文件信息

动态替换配置文件中的内容1、当我们存在多个配置文件动态指定使用某一个动态指定使用 application-dev.yml 或者 application-local.ymljava -jar xxx.jar --spring.profiles.active=dev2、动态修改yml或properties文件中的内容修改配置项--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxxx?Unicode=true&characterEncod

2020-08-14 10:35:47 2580

原创 windows和linux中脚本特殊字符转义

问题:今天在运行jar包时进行参数传递,包含特殊字符出现问题java -jar shop.jar --spring.datasource.url=jdbc:mysql://127.0.0.1:3306/shop?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=123456windows下&符号为特殊字符,在windows下需要使用^符号

2020-08-14 09:05:47 2094

原创 window和linux端口占用问题

window下1、如果出现这种信息就是端口被占用了2、查看被占用的端口netstat -aon|findstr "2181"结果:1)可以直接粗暴结束进程taskkill -F -PID 167882)查看是什么程序占用,然后任务管理器结束根据PID查询进程tasklist|findstr "16788"然后通过任务管理器查询PID为16788的进程,右键结束任务。如果没有PID一列在任务管理器右键勾选即可。。Linux下1)查询占用端口进程 netstat -tnlp |

2020-08-13 16:56:57 7451

原创 聊一下面试经常问的SQL注入

概念一、什么是所谓的SQL注入呢?以下解释来自百度百科:  SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。二、这些都是官方属于,程序员最直观的就是直接上实例代码下边我就使用原始的Jdbc操作数据库来模拟SQL注入的请求1、SQL注入查询所有的用户信息此时有个方法是按照用户名查询当

2020-08-07 11:02:47 14228 1

原创 Byte、File、MultipartFile之间的转换

一、byte[]转MultipartFile需要引入jar包才能使用pom.xml(版本可自行指定)<dependency> <groupId>org.springframework</groupId> <artifactId>spring-mock</artifactId> <version>2.0.8</version> </dependency>MockMultipartF

2020-08-07 09:36:06 20208 3

原创 mysql存储BLOB类型文件以及获取方式

如何将文件内容存储到数据库中呢?先了解一下mysql中的一个数据类型:BLOBBLOB (binary large object)----二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。在数据库中的样子:...

2020-08-05 09:51:32 18458

原创 json解析工具之jackson的常用实例

添加pom依赖:<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency>Jackson 的 注解的使用@JsonProperty用于属性,把属性的名称序列化时转换为另外一个名称。示例:@JsonProperty(“birth_

2020-07-31 17:25:37 13341

原创 设计模式之:三种代理模式详解

什么是代理呢?生活中处处都有代理:明星档期安排,都会有所谓的经纪人春运抢不到火车票,会有代售点和黄牛专家号不好挂,随处可见的黄牛这些经纪人、代售点、黄牛就是所谓的代理通俗点就是中介。代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用为什么要用代理模式,好处是什么?中介隔离作用:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。开闭原则,增加功能:代理类

2020-07-31 15:32:32 2416

原创 mysql 使用left join添加where条件的问题分析

当前需求:有group和factor两张表,一个group对应多个factor,现在想查询有效的group和对应的有效的factor,两个表都有isDel逻辑删除标志。最开始的错误写法一:SELECT g.*,f.* FROM groups g LEFT JOIN factor f ON f.groupId = g.id where g.isDel=0 and f.isDel=0LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2)

2020-07-29 14:41:18 13157

原创 设计模式之:单例模式的几种创建方式

单例模式使用案例数据库的连接池;Spring中的Bean默认也是单例的;单例模式的特性将构造函数私有化在类的内部创建实例提供获取唯一实例的方法编写单例模式的代码饿汉式public class Singleton { // 1.将构造函数私有化,不可以通过new的方式来创建对象 private Singleton() { } // 2.在类的内部创建自行实例 private static Singleton instance = new Sin

2020-07-28 14:27:46 7867

原创 设计模式之:观察者模式与订阅发布区别+代码实现

  观察者模式和发布订阅模式有什么区别?大多数的回答都是:Publishers + Subscribers = Observer Pattern,24种基本的设计模式并没有发布-订阅模式,发布订阅模式属于并发型模式;像典型的Mq;这两种相似单并不可以划等号。我们来重新来回顾一下这两种模式:Observer Pattern  观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。而观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯,观察者模式

2020-07-27 13:52:56 9250

原创 详解linux压缩和解压命令加实例

压缩:1.zip/gzip 命令linux zip命令参数列表:-a 将文件转成ASCII模式-F 尝试修复损坏的压缩文件-h 显示帮助界面-m 将文件压缩之后,删除源文件-n 特定字符串 不压缩具有特定字尾字符串的文件-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间-q 安静模式,在压缩的时候不显示指令的执行过程-r 将指定的目录下的所有子目录以及文件一起处理-S 包含系统文件和隐含文件(S是大写)-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddy

2020-07-27 09:47:02 7365

原创 spring嵌套调用事务问题

如果嵌套调用含有事务的方法,在Spring事务管理中,这属于哪个知识点呢? 在当前含有事务方法内部调用其他的方法(无论该方法是否含有事务),这就属于Spring事务传播机制的知识点范畴了。 Spring事务基于Spring AOP,Spring AOP底层用的动态代理,动态代理有两种方式: 1.基于接口代理(JDK代理)基于接口代理 2.基于CGLib代理(子类代理)基于子类代理下面列举几个事务的例子可以看下是否生效:// Service方法@Transactionalpublic Empl

2020-07-24 17:22:14 9551

原创 maven打包package、install、deploy三者关系

三种方式经历的阶段mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。mvn clean deploy依次执行了clean、resources、compile、testResourc

2020-07-24 14:06:02 3875

原创 RESTful接口设计标准和实例

如何去判断一个接口是否是restful接口呢?1.每一个URI代表一种资源;  http://127.0.0.1/test/zoos //所有动物园 Get请求  http://127.0.0.1/test/cars //所有汽车 Get请求2.客户端通过四个HTTP动词(get、post、put、delete),对服务器端资源进行操作。与之前接口差别最大的就是这个,之前通过方法名去判断这个方法是干什么的,现在是通过请求方式进行区分。原始接口方式:https://example.com/api

2020-07-24 13:18:54 9682

通俗讲解Docker容器化技术.rar

讲解当前火热的容器化技术

2021-03-30

Java面试题大全(2021年).pdf

金三银四跳槽季,涉及分布式,微服务等

2021-03-25

空空如也

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

TA关注的人

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