- 博客(140)
- 资源 (8)
- 收藏
- 关注

原创 隔一段时间撸一次,特别香,HashMap中remove、getOrDefault源码,一遍一遍、又一遍
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获第三篇 MoxiMoxi !!!你看过HashMap中的put方法的源码吗?第四篇 HashMap源码中的resize扩容方法除了扩容还有一个用途你真的知道吗?第五篇 留一半清醒、留一半醉!!!HashMap中
2020-07-13 18:09:12
14027
原创 项目中用的双重检查锁定是怎么回事
文章目录前言一、定义的Foo类二、 instance = new Foo()创建对象的步骤三、非线程安全的延迟初始化对象3.1、可能发生两种情况四、使用synchronized保证线程安全的延迟初始化对象五、为啥要引入双重检查锁定六、线程不安全的双重检查锁定实现延迟初始化对象七、基于volatile的解决方案八、基于类初始化的解决方案8.1、提前初始化8.1.1、提前初始化的代码实现8.1.2、验证类初始化时静态实例被初始化8.2、基于提前初始化改造的类的延迟初始化九、两种解决方案的对比前言开心一笑
2021-06-15 18:09:13
1346
原创 记录一次使用virtualbox和vagrant在centos环境下安装docker以及解决tomcat镜像404的问题
进入到Vagrantfile文件的目录下cd centos7启动vagrantvagrant up查看vagrant的状态vagrant status进入centos7vagrant ssh切换到root权限下sudo -i卸载之前的docker sudo yum remove docker \ docker-client \ docker-client-latest \
2021-06-06 11:48:32
1865
11
原创 记录一次微信小程序getUserProfile的踩坑经历
一、新注册的微信用户怎么昵称都变成了微信用户了?最近我们公司的运营小姐姐反馈说小程序新注册的用户的昵称都是微信用户,而且头像也都是一张灰色的头像。以前能拿到的省市区也都没了。并且质问我们是不是我们开发人员在憋什么大招,搞出了一个BUG。之前前端一直使用的wx.getUserInfo方法获取到的encryptedData传给服务端是一直可以解析到用户信息的,最近发现新注册的用户都变成了微信用户,灰色头像。查看微信官方文档发现原来微信对getUserInfo接口做了调整,以及新增了一个getUs
2021-05-14 07:50:33
2649
3
原创 干了一下午的redis cluster集群的搭建
第一台机器【172.16.198.138】创建4个目录[root@emooco ~]# mkdir -p /etc/redis-cluster[root@emooco ~]# mkdir -p /var/log/redis[root@emooco ~]# mkdir -p /var/redis/7001[root@emooco ~]# mkdir -p /var/redis/7002/etc/redis-cluster:存放配置文件的redis.conf/var/log/redis:存放日志
2021-04-04 21:29:25
352
原创 记录一次部署一个三节点的哨兵集群踩坑经历
1、redis-mster节点【IP 172.16.198.135】1.1、建俩文件目录mkdir /etc/sentinelmkdir -p /var/sentinel/50001.2、在 /etc/sentinel下创建sentinel.conf文件vi sentinel.conf1.3、sentinel.conf内容port 5000dir /var/sentinel/5000sentinel monitor mymaster 172.16.198.135 6379 2sent
2021-04-02 15:20:10
324
2
原创 怎么配置一个读写分离的redis-replication主从架构?
1、主节点修改配置文件1.1、设置口令认证1.2、绑定主节点的ip2、从节点修改配置文件2.1、从节点配置主节点的IP和端口号2.2、从节点配置成只读,这个配置不用改默认就是只读2.3、主节点开启了认证口令,从节点要配置主节点的口令2.4、从节点绑定自己的IP3、主节点进入命令行命令[root@emooco init.d]# redis-cli -h 172.16.198.135图解4、主节点添加数据命令172.16.198.135:6379> set k4
2021-03-31 21:30:12
224
原创 如何在linux虚拟机上进行redis的RDB和AOF快照的定期备份
1、RDB快照配置1.1、在redis.conf配置文件中配置rdb快照图解上图红色圈住的就是rdb快照生成的相关注释。save 60 10 意思就是每60秒生成一份快照,但是前提条件是这60秒要至少有10个key发生变化。rdb快照的相关配置rdb快照默认是开启的,这个配置要根据公司的实际情况进行调整,比如我是用来测试生成快照的,那我就调整为 save 60 102、AOF快照配置2.1、在redis.conf配置文件中配置aof快照图解如上图所示,aof快照默认是关闭的。设置ap
2021-03-31 16:07:09
456
1
原创 一个解决linux系统下没有chkconfig命令导致的command not found: chkconfig问题
抛出问题➜ ~ sudo chkconfig --listzsh: command not found: chkconfig解决办法第一步sudo apt-get update第二步sudo apt-get install sysv-rc-conf执行第二步出现问题Unable to locate package sysv-rc-conf解决办法第一步:打开sources.list文件do vi /etc/apt/sources.list第二步:在sources.list
2021-03-29 13:24:51
9920
8
原创 最近,我在生产环境配置redis跟随系统自动启动以及redis环境变量,我就是这么搞得,你看如何?
1、Redis开机自启1.1、查看redis的安装目录➜ ~ cd /usr/local/redis-6.2.1图解1.2、开机自启动的脚本位置开机自启动的脚本其实就在我们安装的redis的解压包里面,就在utils包里面,redis_init_script这个文件就是自启动的脚本文件,我们不用去百度找这个脚本,用这个官方的就可以。图解utils包位置图解redis_init_script文件位置图解查看脚本并解释1.3、将redis_init_script脚本拷贝到/etc/
2021-03-29 13:15:38
420
2
原创 Linux环境下如何修改文件的所有者和组
1、修改文件的所有者1.1、图解1.2、命令格式:sudo chown root【文件】➜ local sudo chown root redis-6.2.1.tar.gz1.3、图解2、修改文件的组2.1、图解2.2、命令格式: sudo chgrp root【文件】➜ local sudo chgrp root redis-6.2.1.tar.gz2.3、图解3、一键修改文件所有者和组3.1、图解3.2、命令格式 : sudo chown root:roo
2021-03-26 10:58:21
277
原创 阿里云Code 仓库如何设置公钥详解版本
1、阿里云代码仓库管理平台网站https://code.aliyun.com/2、点击设置进入个人设置页面3、获取个人的公钥3.1、进入ssh目录cd ~/.ssh3.2、查看公钥cat id_rsa.pub3.3、整个复制公钥从 ssh-rsa 开始复制完整的4、将复制公钥配置到阿里云代码仓库...
2021-01-07 11:34:16
1298
原创 枚举的简单用法根据值查找名称
package com.fansunion.cloud.luckids.enums;import lombok.AllArgsConstructor;import org.apache.commons.lang3.StringUtils;import java.util.HashMap;import java.util.Map;/** * 关卡难度级别 */@AllArgsConstructorpublic enum GameDifficulty { /** * 4
2021-01-03 20:38:50
792
原创 我有两把枪,一把叫射,另一把叫啊!!手机可以玩英雄联盟手游了,重新拾起大学时代的记忆
1、拳头账号1.1、注册URLhttps://signup.oce.leagueoflegends.com/en/signup/index#/1.2、图解1、如上图,要注册账号一共需要3步,但是目前就离我们比较近的日服才有体验资格。就连香港目前也没体验资格。2、如果要想注册其他服务区的,比如日服、韩服、美服,就需科学上网,让自己的网络切换到相应的节点,然后在该节点下注册,就可以注册成该节点所在的国家的账号。这个就是很多人注册账号能注册成功,但是登陆的时候就是不可以玩,提示region不匹配。
2020-11-07 14:46:38
499
1
原创 Mac环境下安装MAT分析内存快照的踩坑过程
1、下载压缩文件并解压出mat.app1.1、官方下载链接https://www.eclipse.org/mat/downloads.php2、将解压的mat.app移动到/ApplicationsMacBook-Pro ~/Applications $ mv /Users/fenke/Downloads/mat.app .3、直接运行报错并解决3.1、错误提示如果直接点击mat应用,会启动失败,并弹窗提示我们去查看日志文件.eclipse/1005214708_macosx_coco
2020-10-21 19:44:45
1131
1
原创 “遇见”国庆在家搞最新版kibana安装教程
安装文件kibana-7.8.1-linux-x86_64.tar.gz安装包链接:https://pan.baidu.com/s/1Ncd2Z5FVZ815-5JVpaM2nQ 密码:9ns5将我们下载好的kibana上传解压到/usr/local/下命令[root@emooco ~]# tar -zxvf kibana-7.8.1-linux-x86_64.tar.gz -C /usr/local/在config目录下修改配置文件命令[root@emooco kibana-7.8.
2020-10-09 15:37:16
298
原创 Big Old都是这么看JVM的Young GC日志的吗?
1、示例程序代码package com.jvm.jvmdemo.gs;/** * @author :mq * @date :2020-10-09 10:15 */public class JvmGcTest { public static void main(String[] args) { byte[] arr1 = new byte[1024 * 1024]; arr1 = new byte[1024 * 1024]; arr1 =
2020-10-09 15:34:04
259
原创 Minor GC、Young GC、Full GC、Old GC、Major GC、Mixed GC傻傻分不清
1、Minor GC和Young GCMinor GC 和 Young GC,“新生代”也可以称之为“年轻代”, 这两个名词是等价的。那么在年轻代中的Eden内存区域被占满之后,实际上就需要触发年轻代的gc,或者是新生代的 gc。此时这个新生代gc,其实就是所谓的“Minor GC”,也可以称之为“Young GC”,这两个名词,就专门针对新生代的gc。2、Old GC老年代gc,称之为“Old GC”。3、Full GC对于Full GC指的是针对新生代、老年代、永久代的全体内存
2020-09-29 18:22:15
5175
原创 一个list分割成若干个指定长度list的方法
1、测试数据@Testpublic void test_split(){ List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); list.add(6); list.add(7); list.add(8);}2、方法一使用google guava包下的
2020-09-09 20:06:06
3540
原创 ElasticSearch使用别名进行索引数据迁移
ElasticSearch 版本为 7.8.1。Kibana 版本为 7.8.1。这些命令都是在Kibana下的控制台进行测试的。关于ElasticSearch集群的搭建和Kibana的使用可以看我的其他文章。1、动态创建索引my_68_idx并添加数据PUT /my_68_idx/_doc/1{ "title":"2020-09-01"}添加日期字符串2、再次添加一条数据PUT /my_68_idx/_doc/1{ "title":"this is a string.
2020-09-01 20:52:25
1106
原创 如何优雅的从一个逗号分隔的字符串中获取第一个元素
1、转成数组直接获取0位置的元素// it.getBannerPics() 获取到的是一个英文都好分割的字符串String[] strArr = it.getBannerPics().split(","); bo.setItemsPic(strArr[0]);2、使用增强for循环,获取到第一个元素然后直接跳出循环String[] strArr = it.getBannerPics().split(",");for(String p : strArr){ bo.setItemsPic(p);
2020-09-01 14:11:43
2818
1
原创 官方给的方法没啥乱用,加个参数解决unless the include_type_name parameter is set to true问题
1、测试的三条商品信息#新增第一个商品PUT /ecommerce/product/1{ "name":"高露洁牙膏", "desc":"高效、美白、好用", "price":33.5, "producer":"高露洁生产厂家", "short":"gljyg", "tags":["防止蛀牙","美白"]}#新增第二个商品PUT /ecommerce/product/2{ "name":"佳洁士牙膏", "desc":"高效、好用", "price":25,
2020-08-18 20:46:15
2083
原创 查询不同年龄的平均分数和将学生分为三个年龄段并求平均分
1、表结构CREATE TABLE `stu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10) COLLATE utf8mb4_0900_as_ci DEFAULT NULL, `score` int(11) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHA
2020-08-10 19:08:40
1332
原创 这真是是个天坑呀!!!启动zookeeper集群报org.apache.zookeeper.server.quorum.QuorumPeerMain异常
发生错误的图解错误的原因根据上图的异常提示,Caused by: java.lang.NumberFormatException: For input string: "zk_3",【数字转换异常】可以知道我们定义的myid为zk_3,实际上需要的是数字类型的数据。解决办法命令[root@emooco data]# vi myid[root@emooco data]# cat myid3图解...
2020-08-10 10:31:02
973
原创 最新版的elasticsearch7.8.1集群的搭建,一路踩坑,一路爬
安装包elasticsearch-7.8.1elasticsearch-analysis-ik解压到指定文件夹遇到了 tar: /usr/local:归档中找不到 的问题错误命令[root@emooco ~]# tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz /usr/local/错误图解正确命令[root@emooco ~]# tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz -C /
2020-08-04 13:38:29
1835
1
原创 Linux系统使用scp命令在两台主机间进行文件传输
1、文件所在的主机命令[root@emooco ~]# ll图解2、文件要被传到的主机命令[root@emooco ~]# ll图解3、两台主机间传输文件命令命令[root@emooco ~]# scp elasticsearch-7.8.1-linux-x86_64.tar.gz root@172.16.198.134:/root/这里的传输的目的地是根目录。图解4、查看接受文件的主机是否接受成功命令[root@emooco ~]# ll图解...
2020-08-03 19:54:25
609
原创 elasticsearch最新版详细安装教程【新手入门篇】
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。官网官方网站:官方安装步骤中文版API网站:中文版API下载并安装公共签名密钥:命令[root@emooco ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch图解从RPM存储库安装安装脚本命令[root@emooco ~]# vim /etc/yum.repos.d/elasticsearch.r
2020-07-31 18:00:12
618
原创 ruby版本升级的问题!!!Error installing redis-4.2.1.gem: redis requires Ruby version >= 2.3.0
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。下载redis-4.2.1.gem网址网址下载redis-4.2.1.gem官网图解安装redis-4.2.1.gem出现Ruby版本问题[root@emooco redis-cluster]# gem install redis-4.2.1.gemERROR: Error installing redis-4.2.1.gem: redis requires Ruby version
2020-07-29 18:18:14
651
原创 小白都能看的懂……redis最新版本redis6.0.6集群搭建!!!详细入门案例
下载最新redis压缩包链接最新redis压缩包的下载地址【https://redis.io/download】图解创建redis文件夹命令[root@emooco local]# mkdir redis图解复制redis压缩包到/usr/local下命令[root@emooco ~]# cp redis-6.0.6.tar.gz /usr/local/[root@emooco ~]# cd /usr/local/ && ll图解解压最新版的redis-6
2020-07-29 17:39:32
1861
原创 centos7环境下安装redis最新版本redis6.0.6的详细入门案例
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。1、环境配置1.1、Redis是c开发的,因此安装redis需要c语言的编译环境,即需要安装gcc。1.1.1、查看当前系统的gcc命令[root@emooco redis-6.0.6]# gcc -v1.1.2、查看结果如下[root@emooco redis-6.0.6]# gcc -v使用内建 specs。COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/u
2020-07-28 16:29:21
2155
3
原创 啥,编译redis6.0.6的时候爆了……struct redisServer错误
错误提示server.c:4259:19: 错误:‘struct redisServer具体提示server.c:4260:19: 错误:‘struct redisServer’没有名为‘rdb_child_pid’的成员 server.rdb_child_pid != -1, ^server.c:4261:29: 错误:‘struct redisServer’没有名为‘lastsave’的成员 (intm
2020-07-28 11:22:06
3165
3
原创 redis也可以根据经纬度查询附近的元素以及计算两个经纬度的距离???
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。使用场景业界比较通用的地理位置距离排序算法是 GeoHash 算法,Redis 也使用 GeoHash 算法。比如,我们的外卖员送快递的时候需要定位要配送的地点的距离。比如我们找工作的时候,需要查一下面试的公司的位置,以及距离有多远。以及我们在查询附近的共享单车????♀️最近的有几公里。内容概括方法概述Long add(K key, Point point, M membe
2020-07-20 14:10:32
3044
原创 二叉树!!!数据结构与算法,大学期间没学会,现在终于搞明白了
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。树定义树(Tree) 是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:有且仅有一个特定的称为根(Root)的结点;当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、…、Tn,其中每一个集合本身又是一棵树,并且称为根的子树。此外,树的定义还需要强调以下两点:n>0时根结点是唯一的,不可能存在多个根结点,数据结构中的树只能有一
2020-07-15 16:51:37
414
原创 面试官:讲一下HashMap中的get方法,最好可以详细的讲一下getTreeNode方法的具体实现
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获第三篇 MoxiMoxi !!!你看过HashMap中的put方法的源码吗?第四篇 HashMap源码中的resize扩容方法除了扩容还有一个用途你真的知道吗?第五篇 留一半清醒、留一半醉!!!HashMap中
2020-07-14 19:58:42
729
2
原创 HashMap中哈希碰撞大于8真的会将链表转为红黑树吗?
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获第三篇 MoxiMoxi !!!你看过HashMap中的put方法的源码吗?第四篇 HashMap源码中的resize扩容方法除了扩容还有一个用途你真的知道吗?第五篇 留一半清醒、留一半醉!!!HashMap中
2020-07-13 12:08:42
1058
原创 记录9个hashCode相同的字符串,用于测试集合的哈希碰撞
记录9个hashCode相同的字符串案例演示@Testpublic void test_hash_map_hash() { ArrayList<String> list = new ArrayList<>(); list.add("3Qj"); list.add("2pj"); list.add("2qK"); list.add("2r,"); list.add("3RK"); list.add("3S,"); list.add("42j"); list.ad
2020-07-10 12:20:52
1792
原创 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获构造方法构造一个空的 HashMap ,默认初始容量(16)和默认负载因⼦(0.75)源码解析// 构造一个无参数的构造方法public HashMap() { // 将默认的加载因子0.75赋值给lo
2020-07-09 22:52:21
156795
原创 HashMap源码中的resize扩容方法除了扩容还有一个用途你真的知道吗?
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获第三篇 MoxiMoxi !!!你看过HashMap中的put方法的源码吗?.mdfinal HashMap.Node<K,V>[] resize()扩容源码源码解析final Node<K
2020-07-09 19:19:06
501
spring-framework5.2.2.zip
2020-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人