自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dachuan

每天都有进步

原创 MAC 升级到Catalina之后,电脑发热严重解决办法

背景:手欠,将电脑升级到 MAC OS15.2 Catalina 版本之后,电脑耗电量很快,风扇像疯了似的转, 看了CPU有两个进程比较高: osascript 和windowserver ; 现象:活动监视器也不能打开只能用top 指令去看;临时解决方案:【确实奏效】 查到 osascript 这个进程号 PID; 然后kill掉; kill -9 进...

2020-01-05 00:06:58 8623

原创 B+tree 是如何降低IO的?

首先数据查询是经过两步的:第一:将索引页加载到缓存中,然后从缓存中找到数据页;第二:将数据页数据加载到缓存,然后将数据返回出去.首先是索引降低了IO次数,为什么这么说?原因:按B树和B+树来说, B+树的索引页中全部是都是索引,这样一个数据页中能查询到很多索引降低了下一次去磁盘再拿索引页的可能性, 这样就降低了磁盘的IO了.第二: B树在非叶子节点存储数据了,这样我一个索引页上上有数据有索引,肯定效率低了. 这个B树就是一个多叉树而已了,以上就是B+ 树的索引[我之前...

2020-07-24 12:08:51 86

原创 Java是解释型语言,还是编译语言

跨平台运行时无需再编译,就是解释性语言跨平台需要重新编译--->就是编译时语言,拿java来说,是解释性语言, 这个需要JVM虚拟机在进行解释成汇编语言,才能再次转换成机器码,

2020-07-24 09:42:14 31

原创 ES 初步学习

安装教程:1 直接官网下载最新的文件包2. 正常启动,启动后看是否为正常启动?curl 'http://localhost:9200/?pretty'这个是我的本地, 直接浏览器访问这个就可以: http://localhost:9200/

2020-07-18 17:01:10 15

原创 缓存一致性问题讨论

在数据库与缓存之间的一致性问题?最好的是:先写数据库,再删除缓存.原因: 写数据库之后证明写成功了,顺便把缓存删除了. 写成功之后拿到的数据就是最新的. 写数据库失败了,缓存没删除, 还是原来的数据,无伤大雅,---> 写失败了,删除缓存成功了?---> 这种事情不会发生的,即使发生了,也没有问题,查库,还是原来的数据. 问题来了,写成功了,删缓存失败了,这就是麻烦事儿,----->关注点[如何保证删除缓存成功...

2020-07-14 16:57:06 32

原创 关于缓存,数据库, 主从不一致的解决方案

首先考虑为什么出现了不一致?可能存在的情况:1.主,从同步延迟[主要原因]2. 缓存与数据库双写有失败的情形.出现这种情况的原因是什么?逃不开CAP法则分布式造成的. 都是分布式惹的祸. 操作了主库,也操作从库[可以这么理解:调用可主库写,主库有同步从库,间接操作从库] ;操作缓存,也操作了数据库; 不能保证中间被查询了.被修改了.这些都不是原子性操作,不能保证原子性操作就会出现不一致的现象.其实解决方案都可参照 Java内存模型中原子性,可见性,有...

2020-07-13 20:37:52 55

原创 Mysql用户授权基本操作

连接数据库:用哪个是数据库: user mysql;给用户授权, 这个要在mysql数据库中才可以; 接下来是最重要的步骤了:创建用户;给用户授权;--本地访问 用户名后面跟着 "localhost"--远程访问 用户名后面跟着 "%" 这个很重要;create user '用户名'@'%' IDENTIFIED by '密码'GRANT ALL PRIVILEGES ON '数据库'.* TO '用户名'@'localhost' IDENTIFIE...

2020-07-09 20:58:52 54

原创 第一使用Nacos的过程记录

第一步:从官网上下载源码 :我的是Mac 下载的源码放在/opt/nacosgit clone https://github.com/alibaba/nacos.git第二步:编译源码, 原因: 这是下载源码,还没有编译,还没有生成jar包;mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U这个需要等一会儿;第三步: 本地启动jar包;进入这个地址--若存放的位置不一致,记得看下/opt...

2020-07-06 16:59:00 89

原创 kafka 入门教程

从 0-1 搭建 开始学习搭建 kafka要准备的东西:kafka 启动包;zookeeper; 这个可以是独立的,也可以是kafka 自带的kakfatool : kafka 消息查看界面正确的流程是:1.启动zookpeer,任何东西都不需要改;2.启动 kafka ,任何东西都不要改;3.启动kafkatool, 任何东西都不要改, 注意在要添加自己的cluster,这个地方是kafkfa...

2020-06-22 10:39:33 58

原创 解决java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed解决java.sql.SQLNonT

启动项目的时候连接数据库,报错:在连接数据库的url中,加上allowPublicKeyRetrieval=true原因是: 随着mysql的升级,安全校验这款与爱

2020-06-21 17:46:06 185

原创 MySQL事务ID分配时机问题

在快照读的时候, 有三个隐藏列: row_id trx_id undo_log 指针, 还有delete_flag快照读是通过trx_id 和时间来确定读取哪条undo_log, 这个时间就存在下边的表中 select * from information_schema.INNODB_TRX;也可以通过这个监控 事务ID生成的时间及先后顺序....

2020-06-21 06:52:53 139

原创 MySQL join 语句优化

常见的join 语句: 左关联 右关联 全关联优化原则: 小表作为驱动表 大表作为被驱动表举例:T1 表示订单表有1000W条记录;T2 表示个人信息表10000条数据;select * from T1 left join T2 on T1.id =T2.id where ******;这个时候要查询1000W次,执行流程是这样的: 拿到T1的一条记录,去T2查询, 然后where ;// 第二种情况 反转一下select * from T2 le...

2020-06-20 17:46:01 46

原创 面试:网络知识汇总

面试题经常问到:1.首先根据URL访问DNS服务器找到需要方位的IP, 因为IP才是真正第对应一台真正的机器;2.get 到IP的时候,这个时就会三次握手, 正常的走一次TCP/IP请求; 注意:源IP:本地机器IP源端口号:随机的一个端口号,一般是大于1000,目标IP: 刚刚获得的IP 端口号: 803.组织HTTP请求参数{应用层} ,TCP组装参数[传输层]--->要做的事情就是封装HTTP参数,然后将端口号 封装进去;4 网络层 IP...

2020-06-18 19:03:20 144

原创 MySQL 基础知识点

这一个图就是整个MySQL的模型;客户端--->连接池--->解析器--->优化器--->执行器--->存储引擎[innodb]-->磁盘;第一个问题: 怎么保证事务一致性的?第二个问题: redo_log undo_log bin_log 都是干什么用到?bin_log 属于server层 undo_log也是属于server层, binlog 做同步用,归档用redo_log 用于事务, Mysql在5.7之前是不支...

2020-05-14 00:18:58 70

原创 彻底搞懂IO

经常问到IO,用到什么设计模式,手写IO 读取 写入 复制;1. IO是什么? 为什么要这样操作?答: IO是流, 是数据流,字节流, 视频流, Java操作这些流式从内核中读取的, 写入也是写到内核中,然后内核再将数据刷到磁盘上的. 就拿一个socket来的文件流来举例: 第一步: 网卡有文件流来的时候, 可以通过事件监听,去网卡上读取这些流到内核中, 也可以是内核定时去网卡中取数据到内核中来; 第二步: 用户将这些流从内核态读到用户态. 这就是为什么要定义 new...

2020-05-13 21:26:00 56

原创 消息队列RocketMQ 源码分析--启动篇

环境:jdk 1.8maven :3.6rocketMq 4.7git地址:https://github.com/apache/rocketmq.gitrocketMq UIgit地址:https://github.com/apache/rocketmq-externals.git第一步: 下载git源码, 解决依赖错误第二步: 启动nameserv...

2020-05-05 18:41:03 114

转载 MAC IDEA 重装不能启动问题解决: 无法正常启动

(亲测有效-专门解决Mac环境)Pycharm 解决无法打开的问题)https://www.cnblogs.com/liuxiaoming123/p/12783121.html说明:我的idea更新到最新版本的时候, 破解过程中出现了些问题,及时点图片不能启动,重装也不能正常启动, 找到日志显示和图中一张的问题,[Python 和 idea ] 问题是一样的.就按照上边...

2020-05-01 12:33:24 743 2

转载 redis 哨兵模式

关于redis 哨兵模式,这一篇文章就够了:https://www.cnblogs.com/kevingrace/p/9004460.html

2020-03-31 10:47:58 33

原创 各大厂经典算法

头条两道算法题:https://blog.csdn.net/wantflydacheng/article/details/100078735#comments

2020-03-28 19:30:41 105

原创 算法: 判断字符串输入是否正确

AABB ---AABAAA---AAAABBCC---AABCCpackage leetcode.easy.niuke;/** * @author sunfch * @version V1.0 * @Description: 检查字符串输入的是否正确 * @date 2020/3/22 09:12 */public class CheckWord { ...

2020-03-22 10:13:45 107

原创 threadLocal的数据模型

之前一直对threadLocal一知半解;1.通过thread 就能找到自己存储对value;2.看源码分析,他存放对是 this , 也就是当前对对象的地址hashcode啊,这个又是怎么回事?自己看源码理解到的threadLocal的数据模型;这个你细细品:<Thread thread < ThreadLocal localObjct,T value&gt...

2020-03-10 09:22:10 38

原创 gitignore 不起作用解决办法

先删除git 缓存,然后再添加,搞定~~git rm -r --cached .git add .git commit -m ”update .gitignore“

2020-02-27 09:16:37 73

转载 Redisson 锁

1. 可重入锁(Reentrant Lock)Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。public void testReentrantLock(RedissonClient redisson){ RLock lock = redisson.getLock("anyL...

2020-02-19 23:57:09 38

原创 springboot集成 redistemplate及简单使用

Redistemplate的特点是:集成步骤:引入pom 版本号依赖父版本号;<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactI...

2020-02-18 16:05:48 97

原创 springboot 集成Junit5

背景公司项目重构前期搭建框架,用到了测试框架junit,在集成过程中出现问题,特此记录一下;用到的环境:Idea2019-3.2JDK8Junit5maven 环境集成中遇到的问题:1. Runwith 一直报红,不管是否正确引入jar包; 重启了几次也不管用 解决办法:清理缓存【很重要】,然后重启问题解决,前提:正确引用了pom文件;2. 不报...

2020-02-12 16:12:26 366

转载 CURL Linux访问神器

一、CURL---命令行浏览器Curl是Linux下一个很强大的http命令行工具这东西现在已经是苹果机上内置的命令行工具之一了,可见其魅力之一斑1) curlhttp://www.yahoo.com回车之后,www.yahoo.com的html就稀里哗啦地显示在屏幕上了~~~~~2) curlhttp://www.yahoo.com>page....

2020-01-15 18:09:20 40

转载 Git 删除本地文件,远程拉取最新

删除本地文件后,想从远程仓库中从新Pull最新版文件。Git提示:up-to-date,但未得到删除的文件原因:当前本地库处于另一个分支中,需将本分支发Head重置至master. git checkout master git reset --hard git 强行pull并覆盖本地文件: 这招很好用 git fetch --all git re...

2020-01-01 14:35:51 2449

原创 Linux 指令 jsp

JPS===Java Virtual Machine Process Status Tool参数:-l 详细信息-v 参数信息-m 主函数名-q 只显示进程号一般情况下组合:jps -ml;例子:jpsjsp -m...

2019-10-12 17:44:54 114

原创 StringUtils中isNotEmpty与isNotBlank之间的区别

stringutils中的这两个用的比较多,其中的区别是:isNotEmpty(str)等价于 str != null && str.length > 0isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length > 0同理isEmpty...

2019-09-04 16:18:23 277

原创 MAC上 IDEA 显示类方法快捷键

在MAC显示类方法有两种快捷方式第一种:command +7;第二种 command + F12;

2019-08-20 00:47:46 2737

原创 IDEA项目无法引用本地Class类,而且各种报错

背景今天从git 上下载下来的项目,在别的机器上都可以正常运行,然而到了我的机器上,就各种报错,而且本地的class文件也无法引用。1.删掉项目,重新下载也不好用2.重启IDEA,也没有解决问题,原因:IDEA中有缓存,应该是项目中的缓存,建立的索引报错了,导致不能正常引用现有的类;解决方案:清理缓存:删除缓存,并重启就能解决问题。...

2019-08-19 20:30:50 12679 39

转载 fastjson之@JSONField注解的几个的使用详细示范

阿里的fastJoson 是一个非常好用的类,json 转化的时候用到的jsonField 特此记录一下fastjson之@JSONField注解的几个的使用详细示范好文2https://blog.csdn.net/u011425751/article/details/51219242...

2019-07-23 17:50:03 479

转载 Mysql explain中select_type的含义

Mysql explain中性能分析之select_type;mysql explain中性能分析之id;持续更新中。。。

2019-07-12 15:43:21 534

转载 重新看待Jar包冲突问题及解决方案

参考地址:http://www.yangbing.club/2017/07/15/solution-for-jar-conflicts/首先jar冲突的本质:加载到不正确的类,导致的结果与预期不一致本质是:1.同一个jar包,出现了不同的版本; jar包版本较多,不知道加载哪个合适,导致加载到不正确的类2 同一个类,出现在不同的jar包中;由于种种原因(方法签名不一致),导致...

2019-05-28 22:28:28 184

原创 rz sz Liunux 上传文件,下载文件到Windows的指令

用windows 操作linux 系统的时候,需要安装xshell scrt 等软件,然后通过里面的ftp 传输文件,操作简易程度还能接受,但是,,但是,,,还有两个比较好用的指令:rz 往Linux 服务器上上传文件;sz 从Liux服务器下载文件到window;但是有时候文件比较大,这个时候需要加入参数 -bey, 这样就能压缩文件,或者说将文件...

2019-05-16 22:14:09 260

原创 注解@slf4j的正确适用姿势

在框架中发现了@slf4j 注解,不知其作用,查阅一下得知 @slf4j =====private final Logger logger = LoggerFactory.getLogger(XXX.class); 如果不想写,后面的一堆代码,直接写个注解@slf4j 就OK了, 示例截图: ...

2019-04-12 16:07:34 683

原创 mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别

在mysql中存在着各种utf8编码格式,如下:1)utf8_bin2)utf8_general_ci3)utf8_general_csutf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。utf8_general_cs区分大小写,cs为case sensi...

2019-04-01 17:34:23 131

原创 Mysql 基本数据类型及注意事项

Mysql常用的基本数据类型第二:INT(3),TINYINT(2),这个表示什么意思?这个表示: 显示的最小长度,当大于这个长度的时候正常显示,小于这个长度的时候前面补0;举例: 当插入1的时候, INT(3),会显示001,TYNINT(2) 会显示01, 当插入1234的时候 INT(3)会显示1234;第三:未完待续。。。...

2019-04-01 11:02:48 123

原创 enum 枚举的作用

首先要知道枚举是干什么的,能起什么作用我的理解:枚举就和select 的作用是一样一样的,根据选择获得枚举对象的值或者对象的元素内容, 1. 固定字段,比如说系统需要设置有些固定字段:read ,unread,email,address等字段,可以用枚举; 2. 固定字段里面可以添加属性,获得固定字段的属性,这样就和select 中的option 非常相似了;直接上代码...

2019-03-29 15:48:10 372

原创 @param 是干什么用的? 为什么要用@param

刚到公司,读代码的时候遇到了这个@param,[这个和@requestparam是不一回事哈]首先解释一下为毛要用这个东西 当在查询的时候,一个参数的时候,在直接在入参中写入就可以了,但是当两个参数的时候,怎么办? 两种办法:第一用Map ,第二:就用@param,[可读性比较好,参数少的时候] 注意:当参数为2-5个时候,用@param最佳,当大于5的时候...

2019-03-28 21:06:47 4673

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