自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 equals和hashCode的约定(重写equals必须重写hashCode)

为什么重写equals必须重写hashCode1. Object中equals、hashCodepublic native int hashCode();public boolean equals(Object obj) { return (this == obj);}首先看一下equals方法,Object中默认比较两个对象的地址。也就是说如果一个类默认的equals,就比较地址。而反观hashCode方法,我们先来看一下hashCode注释 /** * Retu

2020-08-08 14:05:44 1455 3

原创 Lock底层原理—ReentrantLock、AQS、Condition

Lock底层原理—ReentrantLock、AQS、Condition文章目录Lock底层原理—ReentrantLock、AQS、Condition1. Lock2. ReentrantLock公平锁和非公平锁SyncNonfairSyncNodeFairSync3. AQS—AbstractQueuedSynchronizerMyLock4. ConditionConditionObject.awaitConditionObject.signal5. 同步队列与等待队列参考:先来看看J.U.C包下

2020-06-04 23:39:54 764 3

原创 synchronized底层原理—Monitor监视器

深入了解sychronized文章目录深入了解sychronized1. 作用2. 底层实现原理1. Monitor类2. 管程3. ObjectMonitor4. _WaitSet5. _EntryList6. ObjectWaiter3. 对象头1. 轻量级锁2. 重量级锁4. 总结参考sychronized——java多线程锁的关键字1. 作用多线程情况下,同步代码的互斥访问有效的解决了共享变量的可见性问题解决了指令重排序的问题2. 底层实现原理小插曲:用idea插件jclassl

2020-05-31 07:52:31 3497 1

原创 剖析Iterator原理

Iterator迭代器文章目录Iterator迭代器1. 集合的遍历方法2. Iterator和Iterable的区别3. Iterator循环原理4. foreach循环原理1. 集合的遍历方法 List<Integer> list = new ArrayList<>() ; //1.索引遍历 for (int i=0 ; i&l...

2020-04-27 16:27:27 618

原创 springboot配置Https:java.lang.UnsatisfiedLinkError: org.apache.tomcat.jni.SSL.renegotiatePending(J)I问题

开发微信小程序时,小程序请求后台报出了java.lang.UnsatisfiedLinkError: org.apache.tomcat.jni.SSL.renegotiatePending(J)I我的springboot版本是2.1.1.RELEASE,经过查阅发现2.1.1版本及其以上的内置的tomcat的版本都是9.0.13的,虽然我也不清楚为什么配置Https他要报出这个错,但是还是...

2019-11-29 14:26:56 3242 1

原创 关于ZeroMQ

ZeroMQZMQ是一个传输层,socket lib,底层的网络通信库,在socket api上进行了封装,将网络通讯、进程通讯和线程通讯抽象成统一的API接口ZMQ和Socket区别Socket是端到端(1:1),ZMQ是N:MZMQ用于node和node通信三种模式应答模式(类似半双工)使用REQ-REP套接字发送和接受消息是需要遵循一定规律的。客户端首先使用zmq_send()发送消息,再用zmq_recv()接收,如此循环。如果打乱了这个顺序(如连续发送两次)则会报错。类似地,

2021-08-09 23:24:34 412

原创 Golang map和 sync.Map

Golang map和 sync.Mapmap底层实现和扩容机制sync.map安全机制1. map和java中hashmap一样,Go中的map是基于哈希来实现的,同样也是采用链地址法来解决法系冲突,采用的是数组+链表的方式来表达map,这一点和java不同,java是通过数组+链表+红黑树来实现的。1.1. 结构体hmaptype hmap struct { count int //当前保存元素的个数 flags uint8 B uint8 /

2021-08-01 22:05:16 1202

原创 golang 垃圾回收机制

golang 垃圾回收机制术语allocatorcollector自动内存管理机制一般包含allocator(分配器)和collector(回收器)。allocator负责为应用代码分配对象,而collector则负责寻找存活的对象,并释放不再存活的对象mutatormutate的是变化的意思,mutator就是改变者,在GC里,指的是改变对象之间引用关系的实体,可以简单的理解为我们写的的应用程序(运行我们写的代码的线程, 协程)。golang垃圾回收算法-三色标记法三色标记是以标记

2021-07-11 12:52:48 389

原创 goroutine调用机制

goroutine调用机制1. GPM模型G:理解为任务,代表着一个goroutineP:理解为处理器,每个M都在P上面运行,数量是GOMAXPROCS,最大256M:理解为线程,创建M时都会在底层创建线程,G都是在M上运行2. gorountine过程goroutine执行时,相对应的就是创建一个任务,这个任务进入到队列中(全局队列)如果有空闲的处理器,则会创建线程来循环执行任务。该线程会先从本地队列中获取任务,如果本地队列中没有任务了,再从全局队列中获取(获取的数量=全局队列任务量

2021-07-11 12:50:45 338 1

原创 golang中byte和rune

golang中byte和runebytebyte alias for uint81byte = 8bit强调数据是raw datarunerune alias for int32int32 = 4byte表示Unicode的code pointuint8 the set of all unsigned 8-bit integers (0 to 255)int32 the set of all signed 32-bit integers (-214748

2021-06-30 10:06:25 165

原创 Elasticsearch Exception [type=illegal_argument_exception, reason=Document contains at least one imme

Elasticsearch Exception [type=illegal_argument_exception, reason=Document contains at least one immense term in field=“xxxx”(whose UTF8 encoding is longer than the max length 32766),all of which were skipped. Please correct the analyzer to not produce such

2021-03-05 13:55:49 1501

原创 LeetCode338 比特位计数

//思路是找规律,动态规划的思想 //0 1 //10 11 //100 101 110 111 //bit[i] = bit[i-2^n] + 1 //2^(n+1) > i > 2^n public int[] countBits(int num) { int[] bit = new int[num+1]; if (num == 0){ return bit; } //循环的次数 .

2021-03-03 21:23:40 209 1

原创 BigDecimal精度和比较问题

BigDecimal精度和比较问题public class BigDecimalTest { public static void main(String[] args) { BigDecimal b1 = new BigDecimal("300000.00000"); BigDecimal b2 = new BigDecimal("300000.000"); System.out.println("b1 = " + b1.toString() +

2021-02-23 14:31:43 1047

原创 RestHighLevelClient操作Elasticsearch同步操作

RestHighLevelClient整理6.1. 创建索引 CreateIndexRequest request = new CreateIndexRequest(indexName) ; //一个分片 一个备份 request.settings(Settings.builder().put("index.number_of_shards" , 1).put("index.number_of_replicas" , 1)); //配置mappings

2021-01-31 15:11:17 1881

原创 Elasticsearch和SpringBoot版本问题

Error creating bean with name 'elasticsearchClient' defined in class path resource [org/springframework/boot/autoconfigure/data/elasticsearch/ElasticsearchAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org

2021-01-30 16:35:52 1298

原创 boolean类型格式化问题

boolean类型格式化问题public class Main { public static void main(String[] args) { // write your code here System.out.println(String.format("%s" , true)); System.out.println(String.format("%b" , true)); System.out.println(String.fo

2021-01-06 21:52:21 2093

原创 Git命令学习笔记

Git命令学习笔记git# 当前目录初始化git init # 初始化文件夹git init "project-name"# 从url上克隆下来git clone "url"# 查看工作目录和暂存目录的状态git status# 查看版本历史git log# 显示每次更新的修改文件的统计信息,每个提交都列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计git log --statgit config# 配置全局变量git config --globa

2021-01-05 23:22:51 107

原创 CMS垃圾收集器

CMS垃圾收集器文章目录CMS垃圾收集器1. 触发条件:2. 收集步骤:3. 步骤详解3.1. 初始标记3.2. 并发标记3.3. 预清除3.4. 可被中止的预清除3.5. 重新标记3.6. 并发清除3.7. 并发置4. CMS需要注意的问题:4.1. 减少remark阶段停顿4.2. 内存碎片问题4.3. 处理器资源敏感4.4. 浮动垃圾5. 参考​ CMS是老年代垃圾收集器,在收集过程中可以与用户线程并发操作。它可以与Serial收集器和Parallel New收集器搭配使用。CMS牺牲了系统的吞

2020-10-19 10:13:18 515 1

转载 MySQL EXPLAIN

MySQL EXPLAIN1. EXPLAIN​ 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。分析的结果:2. idselect查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。id相同,执行顺序由上至下id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行。3. select_type分别用来表示查询的类型,主要是用于区别普通查询

2020-09-16 14:57:07 155

原创 淘系一面

淘系一面1. 分布式1.1. redis实现分布式锁1.1.1. redis setSET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]EX second :设置键的过期时间为second秒。 SET key value EX second效果等同于SETEX key second value 。PX millisecond :设置键的过期时间为millisecond毫秒。 SET key value PX millisecond效果等同于P

2020-09-15 18:59:37 224

原创 接口幂等性实现方案

接口幂等性1. 什么是接口幂等性幂等源于数学,表达的是N次变换与1次变换的结果相同。如果一个方法调用一次和调用多次产生的效果是相同的。幂等函数或者幂等方法,是指可以使用相同参数执行,并能获得相同结果的函数,这些函数不会影响系统的状态,也不用担心重复执行会对系统造成改变。2. HTTP维度GET方法HTTP GET 方法用于获取资源,不应有副作用,所以是幂等的。Select可以说是天生的幂等。这里指的是N次和1次具有相同的副作用,而不是返回相同的数据。DELETE方法HTTP DELETE

2020-09-05 15:32:18 900

原创 nginx.conf配置

nginx.conf配置location匹配设置worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80

2020-09-02 18:20:15 206

原创 深入理解Apache Dubbo 笔记(一)

深入理解Apache Dubbo 笔记(一)1. 什么是DubboDubbo是阿里SOA服务化治理方案的核心框架,被广泛的应用到阿里的各成员站点。Dubbo是Java类项目中卓越的框架之一。他提供了注册中心机制,解耦了消费和服务方动态问题,并提供了可靠性。采用了微内核+富插件设计思想,包括框架本身都是基于扩展点实现的。2. Dubbo解决的问题单体架构和垂直架构无法满足需求,分布式服务框架及流动计算框架势在必行。Dubbo解决了几个基本的问题:高性能、透明的RPC调用。服务的自动注册和发

2020-09-02 15:24:51 460

原创 MySQL的MVCC

MySQL的MVCC1. 什么是MVCCMVCC中文是多版本并发控制,顾名思义,是一种提高并发的技术。根据逻辑,在并发上只有读读是不阻塞的,而读写、写读、写写是需要阻塞。但是在MVCC出来之后,只有写写才能阻塞,其他三个都可以并行操作。这也是InnoDB存储引擎受欢迎的原因之一。InnoDB并不是单纯的行级锁,而是同时实现了MVCC,所以也可以认为MVCC是行级锁的另一种形式。MVCC有多种实现方式:乐观并发控制、悲观并发控制。同时MVCC只能在READ COMMIT 和 REPEATABLE REA

2020-08-31 21:53:19 199

原创 前缀树

前缀树定义:什么是前缀树 又称单词查找树,[Trie树](https://baike.baidu.com/item/Trie树),是一种[树形结构](https://baike.baidu.com/item/树形结构/9663807),是一种哈希树的变种。典型应用是用于统计,排序和保存大量的[字符](https://baike.baidu.com/item/字符)串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符

2020-08-26 20:03:57 212

原创 图论 ——buildGraph、DFS、BFS、Kruskal、Prim、TopologicalSort、dijkstra

图论 ——buildGraph、DFS、BFS、Kruskal、Prim、TopologicalSort、dijkstra文章目录图论 ——buildGraph、DFS、BFS、Kruskal、Prim、TopologicalSort、dijkstra1. buildGraph2. DFS3. BFS4. Kruskal5. Prim6. TopologicalSort7. dijkstra8. 完整code抛开冗余的知识点,通过代码了解 buildGraph、DFS、BFS、Kruskal、Prim、

2020-08-22 10:05:03 360 1

原创 LRU Cache 三步优化方案

LRU Cache首先说明这是携程2019年后端的笔试题https://www.nowcoder.com/question/next?pid=16620108&qid=365880&tid=35966796时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 64M,其他语言128M复制代码 ``设计一个数据结构,实现LRU Cache的功能(Least Recently Used – 最近最少使用缓存)。它支持如下``2``个操作: get 和 put。` `int`

2020-08-15 00:02:22 910

原创 Java序列化——Serializable和Externalizable

Java序列化——Serializable和Externalizable1. 继承Serializable接口import java.io.Serializable;/** * @author gyh * @csdn https://blog.youkuaiyun.com/qq_40788718 * @date 2020/8/12 22:51 */public class User implements Serializable { private static final long s

2020-08-13 00:08:26 209

原创 Java实现八种排序算法

八种排序算法package basicalgorithm.sort;import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * @author gyh * @csdn https://blog.youkuaiyun.com/qq_40788718 * @date 2020/8/8 23:04 */public class SortUtil { /** * 桶排序

2020-08-09 20:51:53 158

原创 负载均衡、服务熔断、服务降级、服务限流(主要是Dubbo)

1. 负载均衡​ 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。1.1. dubboString loadbalance() default "";dubbo的四种负载分别是:随机(权重)、轮询(权重)、最少活跃调用数、一致性Hash。1.2. gateway通过服务注册中心的服务名/接口实现负载均衡。实际上gateway

2020-08-06 22:51:51 3783

原创 Gateway启动失败:An attempt was made to call a method that does not exist.

APPLICATION FAILED TO STARTDescription:An attempt was made to call a method that does not exist. The attempt was made from the following location:org.springframework.cloud.gateway.config.GatewayAutoConfiguration$NettyConfiguration.gatewayHttpClient(Ga.

2020-08-06 18:35:17 1206

原创 ElasticSearch入门(3)——Spring实践

ElasticSearch入门(3)——Spring实践简单的入门之后就是实践基于SpringBoot<properties> <java.version>1.8</java.version> <elasticsearch.version>7.6.2</elasticsearch.version> </properties> <dependencies>

2020-08-04 21:57:26 216

原创 ElasticSearch入门(2) —— 基本操作

ElasticSearch入门(2) —— 基本操作文章目录ElasticSearch入门(2) —— 基本操作简单操作复杂操作查询text 和 keyword高亮查询简单操作指定属性查询//name 和 法外狂徒 是绝对相等的//原因是name设置的是keyword 整体搜索才能查到GET test3/_doc/_search?q=name:法外狂徒{ "took" : 115, "timed_out" : false, "_shards" : { "total" :

2020-08-04 21:56:12 220

原创 ElasticSearch入门(1)——了解ES

ElasticSearch入门(1)——了解ES文章目录ElasticSearch入门(1)——了解ES1. Lucene2. ElasticSearch1. ES开启跨域2. 索引 - index3. 类型 - type4. 文档 - document5. 分片 - shared6. 集群 - cluster7. 节点 - Node3. IK分词器1. ik_smart - 最少切分2. ik_max_word - 最细粒度划分3. 增加自定义字典4. 请求方式1. PUT2. GET3. POST5.

2020-08-04 21:25:55 2323

原创 EditPlus导致ElasticSearch中IK分词器添加自定义字典无法实现

首先保证文件命名正确其次保证配置文件中填写的没有问题问题的关键重启之后发现仍然不能展示自定义字典中的词所以想到了编码问题发现默认的是ANSI需要修改为UTF-8这样问题就解决了...

2020-08-03 22:12:51 345

原创 LeetCode 滑动窗口题型练习(持续更新)

LeetCode 滑动窗口题型练习字符串的排列题目给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例1:输入: s1 = “ab” s2 = “eidbaooo”输出: True解释: s2 包含 s1 的排列之一 (“ba”).示例2:输入: s1= “ab” s2 = “eidboaoo”输出: False注意:输入的字符串只包含小写字母两个字符串的长度都在 [1, 10,000] 之间

2020-08-01 21:14:27 1013

原创 树形DP

树形DP举例二叉树节点间最大距离一个二叉树中,任意两个结点的最大距离。自己的解法 public static class TreeNode { public int val ; public TreeNode left = null; public TreeNode right = null; public TreeNode(int val) { this.val = val; }

2020-07-31 21:26:32 228

原创 Morris遍历

Morris遍历morris遍历morris遍历是二叉树遍历算法的超强进阶算法,跟递归、非递归(栈实现)的空间复杂度,morris遍历可以将非递归遍历中的空间复杂度降为O(1)。从而实现时间复杂度为O(N),而空间复杂度为O(1)的精妙算法。morris遍历利用的是树的叶节点左右孩子为空(树的大量空闲指针),实现空间开销的极限缩减。基础逻辑/** * 树节点类 */ public static class Node{ public int value ; p

2020-07-30 17:14:06 199

原创 Docker 笔记

Docker笔记联合文件系统Union File System, 简称UnionFS,是一种为Linux,FreeBSD,和NetBSD操作系统设计的把其他文件系统联合挂载到一个挂载点的文件系统服务。它通过使用branch把不同文件系统的文件和目录覆盖,形成一个一致的文件系统。这些branch是只读或者只写的。当对文件进行写操作时候,才会真正的复制文件进行写操作。实际上本身没有对原来的文件进行修改,可以看做是共享了原来的文件。在写的时候进行修改用到了一种资源管理技术成为写时复制。写时复制(copy

2020-07-29 10:36:38 709

原创 docker push 失败 :denied: requested access to the resource is denied

denied: requested access to the resource is denied解决# 为自己做的镜像生成版本号 # keydous 是 docker hub 的用户名# diytomcat 是 镜像的名称# 1.0 是版本号docker tag cb307d7bbf94 keydous/diytomcat:1.0# 然后docker push 就好使了docker push keydous/diytomcat:1.0...

2020-07-29 10:23:35 251

dubbo-admin-2.5.8.war

网上打包好的dubbo太少了,所以上传一下,方便大家的使用。 版本是2.5.8的,放在tomcat/webapp下直接就可以用啦。 5积分你买不了吃亏也买不了上当,真正的物超所值,欢迎大家前来选购。

2020-04-03

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

TA关注的人

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