10 byds520

尚未进行身份认证

我要认证

高级Java开发工程师

等级
TA的排名 2w+

git分支合并

1,从master 合并到 test上git checkout mastergit pullgit checkout testgit pullgit merge master// 修复冲突,执行git commit - m "fixed: conflict"之后 再推送到 test分支上git push -u origin test2,从test合并到master上则 是反过来的操作。(代码确保最新的,merge操作,需要在“想合并到”的分支上执行)...

2020-06-03 20:38:30

Dock命令总结

1,停止所有容器:docker stop $(docker ps -a -q)2,删除所有容器:docker rm $(docker ps -a -q)3,查看所有容器的ID:docker ps -a -q(其中docker ps 列出容器,-a:显示所有的容器,包括未运行的,-q:静默模式,只显示容器编号)4,删除本地一个或多个镜像:docker rmi (-f 强制删除, 如 docker rmi -f image1 image2等)5,构建镜像:docker build ( ...

2020-05-31 22:49:20

Filter、Interceptor、Aspect区别与应用

Filter:和框架无关,可以控制最初的http请求,但是更细一点的类和方法控制不了。可以拦截到方法的请求和响应(ServletRequest request, ServletResponse response)并对请求响应做出像响应的过滤操作,比如设置字符编码,鉴权操作等Interceptor:可以控制请求的控制器和方法,但控制不了请求方法里的参数拦截器可以方法执行之前(pre...

2020-04-16 13:59:34

为什么 Mysql 选择B+树而不是B-树

B树(也就是B-树)B+树(B-树的变种)B-树与B+树区别B+树查询时间复杂度固定是logn,B-树查询复杂度最好是 O(1)。B+树相邻接点的指针可以大大增加区间访问性,可使用在范围查询等B-树每个节点 key 和 data 在一起,则无法区间查找。B+树更适合外部存储,也就是磁盘存储。由于内节点无 data 域,每个节点能索引的范围更大更精确B-树每个节点即保存...

2020-04-14 14:01:27

Spring循环依赖检测、解决方法

核心利用二级和三级缓存1,一级缓存:用于存放完全初始化好的 bean2,二级缓存:存放原始的 bean 对象(尚未填充属性),用于解决循环依赖 */3,三级级缓存:存放 bean 工厂对象,用于解决循环依赖循环依赖发生的时机:实例化与填充属性/方法的过程中检测循环依赖的过程如下:1,A 创建过程中需要 B,于是A 将自己放到三级缓里面,去实例2,B 实例化的时...

2020-04-14 12:19:48

三种分布式锁的区别

1,基于数据库(性能较差,锁表的风险,非阻塞,失败需要轮询耗CPU)核心思想:在数据库中创建一个表,表中包含方法名等字段,并在方法名字段上创建唯一索引想要执行某个方法,就使用这个方法名向表中插入数据,成功插入则获取锁执行完成后删除对应的行数据释放锁。2,基于REDIS(过期时间不好控制,非阻塞,失败需要轮询耗CPU)使用setnx加锁,并使用expire命令为锁添加一个超时时...

2020-04-14 10:13:46

JAVA垃圾回收判断、垃圾回收算法、垃圾回收器比较

如何判断垃圾1,引用计数法 (会有循环引用问题)2,可达性分析算法(无法与GC Root建立直接或间接的连接)GC Root有哪些1,虚拟机栈中引用的对象,如:对象地址2,方法区中类静态属性引用的对象,如:static变量3,方法区中常量引用的对象,如:final static4,本地方法栈中引用的对象,如:调用native,虚拟机只是简单地动态连接并直接调用指定的本地方法...

2020-04-14 03:44:54

mvn如何解决依赖冲突

1,项目X会使用(Y,G,Z),Y、G依赖Z的不同版本,而且当前使用的与另一个版本不兼容,2,我们正在使用哪个Z版本?依赖机制如下:a,将使用库的版本(如项目Y),其节点最接近依赖关系树中的根(项目X)。b,如果同一库(如项目Y)有多个版本,则选择取决于POM文件中的依赖关系顺序。3,解决冲突1,最简单的解决方案是 在X的POM文件中将正确库的引入调整到错误库之前,如G调整...

2020-04-14 02:10:11

Java类加载过程机制

加载机制:JVM把class文件加载到内存,并对数据进行校验、准备、解析、初始化,最终形成JVM可以直接使用的Java类型的过程。1,加载阶段加载是类加载过程中的一个阶段,不要将这2个概念混淆了。相对于类生命周期的其他阶段而言,加载阶段(加载阶段获取类的二进制字节流的动作)是可控性最强的阶段,因为开发人员既可以使用系统提供的类加载器来完成加载,也可以自定义自己的类加载器来完成加载...

2020-04-14 01:43:03

NIO、BIO、AIO介绍

目前有三种IO共存。分别是BIO、NIO和AIO。BIO 全称Block-IO 是一种同步且阻塞的通信模式。是一个比较传统的通信方式,模式简单,使用方便。但并发处理能力低,通信耗时,依赖网速。(线程发起io请求后,一直阻塞(阻塞io),直到数据就绪后,用户线程将数据写入socket空间,或从socket空间读取数据)NIO,全程 Non-Block IO ,一种非阻塞同步的通信模式。...

2020-04-14 00:50:46

Java基础知识、hashmap、AQS、ThredPoolExecutor

1,StringBuild、StringBuffer、String 区别,Integer a= 130 与 Integer Integer b= 130 相等么,120呢?为什么(-128,127做了缓存,所以是同一个对象,主要是基于效率考虑,防止频繁创建)2,了解java的集合有哪些ArrayList,Vector,LinkedList,HashSet(底层HashMap),Linked...

2020-04-13 18:55:18

Java锁、内存区域划分、类初始化顺序

1,volatile 变量的内存可见性是基于内存屏障(Memory Barrier)实现。内存屏障,又称内存栅栏,是一个 CPU 指令。 在程序运行时,为了提高执行性能,编译器和处理器会对指令进行重排序,JMM 为了保证在不同的编译器和 CPU 上有相同的结果,通过插入特定类型的内存屏障来禁止特定类型的编译器重排序和处理器重排序,插入一条内存屏障会告诉编译器和 CPU:不管什么指令都不能和这...

2020-04-13 01:13:47

Redis缓存击穿、缓存雪崩问题

缓存击穿:(针对某个数据)问题描述:用户请求不存在的key,缓存中不存在,请求会绕过缓存直接查询数据库导致性能下降,如果用户恶意多次请求不存在的key,就会有性能问题,导致后台崩溃。解决方式:1,查询DB的时候使用 互斥锁2,设置默认值,空值如设置成“NULL”。3,使用BloomFilter,用于验证哪些查询有数据,有数据再查询DB,也是为了解决空值问题。缓存雪崩:(针对...

2019-10-26 10:19:13

Clickhouse优缺点及性能情况

优点:1,为了高效的使用CPU,数据不仅仅按列存储,同时还按向量进行处理;2,数据压缩空间大,减少IO;处理单查询高吞吐量每台服务器每秒最多数十亿行;3,索引非B树结构,不需要满足最左原则;只要过滤条件在索引列中包含即可;即使在使用的数据不在索引中,由于各种并行处理机制ClickHouse全表扫描的速度也很快;4,写入速度非常快,50-200M/s,对于大量的数据更新非常适用。...

2019-10-25 11:33:33

Mac创建自签名的代码证书

进入应用程序 =>> 实用工具 =>> 钥匙串访问选择 钥匙串访问 =>> 证书助理 =>> 创建证书颁发机构输入证书名称,随便写(但要记住)类型:自签名根CA用户证书:代码签名电子邮件:需要一个邮箱地址(写自己的就行)点击创建后即可,生成证书,但需要信任一下。点击 我的证书 =>> 选择刚创...

2019-10-09 11:50:52

MacOS 下 Navicat 12.1.24 破解

git文档:https://github.com/boydos/navicat-keygen/blob/mac/README.zh-CN.md1,确保已安装如下库$ brew install openssl$ brew install capstone$ brew install keystone$ brew install rapidjson$ brew install lib...

2019-10-09 11:37:55

Updating Homebrew 慢的解决方法

1,替换成阿里巴巴的 brew.git 仓库地址:cd "$(brew --repo)"git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git# 还原为官方提供的 cd "$(brew --repo)" git remote set-url origin https://github.c...

2019-10-09 11:00:38

sublime文本编码自动识别,编码格式转换神器

推荐一款编码自动识别转换神器1,打开PackageControl ,输入install Package2, 输入ConvertToUtf8,安装该插件。3,再输入Codecs33 安装该插件(该插件解决了,由于 Sublime Text 3 内嵌的 Python 限制,ConvertToUtf8可能无法正常工作的问题)安装完成后,就可以随便打开一个乱码文件,自动会识别出相应的编码...

2019-05-20 14:29:20

Linux网络NetStat命令详解

netstat 命令中各选项的含义如下: -a 显示所有socket,包括正在监听的 -c 每隔1秒就重新显示一遍,直到用户中断它。 -i 显示所有网络接口的信息,格式同ifconfig -e -n 以网络IP地址代替名称,显示出网络连接情形 -r 显示核心路由表,格式同route -e -t 显示TCP协议的连接情况...

2019-05-09 10:36:37

shell中文特殊字符替换

#!/bin/bashif [ ! -n "$1" ]; then echo "please input file type [f: file d: directory]" exitfifind . -type $1 -name "*" -print |while read name; dona=`echo ${name// /-}`na=`echo ${na//【/[}`n...

2019-04-17 21:35:06

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取