- 博客(87)
- 资源 (1)
- 收藏
- 关注
原创 【每周Java技术】2022.06.13 周一 ~ 06.19 周日(Spring Cloud Stream | Sleuth | Zipkin)
Java的 Spring Cloud Sream 相关的服务治理, Spring Cloud Sleuth 追踪消息
2022-06-19 16:13:35
29
原创 使用 Typora +PicGo + GitHub 打造完美的 MarkDown写作体验 2022.06.14 周二
Typora是一个及时渲染的 markdown写作软件,区别于csdn和有道云笔记等传统的两列显示的软件,他支持实时渲染,干净好用,如果不在意他的图片在本地,可以直接使用即可,目前是收费的。破解版的可以看这里:Typora破解版PicGo 软件是一个图床软件,可以支持 Typora 中的图片上传到 gitHub,gitee中。软件下载建议稳定版本的,下载地址: PicGo gitHub下载地址具体配置可以参考文档: PicGo图床与Typora(PicGo+Typora+GitHub的完整设置)....
2022-06-14 20:43:02
46
原创 【每周Java技术】2022.06.06 周一 ~ 06.12 周日 (配置中心 | RabbitMQ | Kafka)
主要讲解 Java Spring Cloud相关的 配置中心和 微服务异步消息中间件 RabbitMQ 和 Kafka
2022-06-11 18:15:09
74
原创 【每周Java技术】2022.05.30 周一 ~ 06.05 周日(测试并发 | N皇后问题 | 服务熔断 限流)
测试并发 | N皇后问题 | 服务熔断 限流
2022-06-04 17:25:41
78
原创 【每周Java技术】2022.05.23 周一 ~ 2022.05.29 周日(Eureka | DFS | BFS | Doctor | Zookeeper | Consul)
01. 05.23 周一1.1)使用Eureka作为服务注册中心1.1.1) 认识 Eureka1.1.2) 在本地启动一个简单的 Eureka 服务1.1.3) 将服务注册到 Eureka Server关于 BootStrap 属性1.2) 使用 Spring Cloud Loadbalancer(负载均衡) 访问服务前置阅读:使用方法:给 WebClient 或 RestTemplate 添加一个 @LoadBalanced注解就可以使用负载均衡了原理:处理 @
2022-05-28 12:04:06
28
原创 【每周Java技术】2022.05.16 周一 ~ 2022.05.22 周日(Srping Boot | 二叉树 | Docker | 微服务/云原生)
01. 05.16 周一1.1)Spring Boot1.1.1) Spring Boot的组成部分01 Spring家族02 Spring Boot不是什么03 Spring Boot特性Spring Boot四大核心1.1.2) 了解自动配置的实现原理01 了解自动配置02 自动配置的实现原理条件注解spring boot使用的条件注解来实现的自动配置......
2022-05-21 09:03:07
189
6
原创 【源码系列】Java Spring源码直播课(Bean生命周期|循环依赖) 2022.05.19 周四
01. 05.19 周四1.1)Spring源码1.1.1)Bean的生命周期
2022-05-20 10:08:14
17
原创 【每周技术】2022.05.09 周一 ~ 2022.05.15 周日 (Mysql B+树 | MyBatis | Hash碰撞| Spring)
1. 05.09 周一1.1) mysql的隔离级别mysql的可重复读解决了快照读的幻读问题,但是没有解决,加了 for update的 select的当前读的幻读问题,具体查看:真正理解可重复读事务隔离级别 - 掘金下面的例子说明了 “可重复读”解决了 快照读(只有非for update查询,没有)的幻读问题,没有解决 当前读(查询期间有 update等操作,或查询时加了 for update)的幻读问题1.2) B+树下面是B+树的数据结构示意图参考: 一篇文章讲透MySQL
2022-05-14 17:52:47
198
2
转载 IntelliJ IDEA配置maven(设置maven本地仓库路径)
如果不懂如何搭建本地maven仓库,可以参考我这篇文章:https://blog.csdn.net/qq15577969/article/details/103560865第一步、在IntelliJ IDEA菜单栏 ,File → Settings第二步、设置maven本地仓库的路径和配置文件路径,然后点“apply”或者“ok”即可Maven使用阿里云镜像和jdk1.8设置打开maven配置文件,D:\maven\apache-maven-3.6.3\conf\settings.x...
2022-05-12 07:44:17
692
2
原创 【每周技术】2022.05.02周一 ~ 2022.05.08 周六
05.08 周六1. 计算空间复杂度https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/r8ytog/1.1) 递归调用的空间复杂度示意图1.2) 指数阶的空间复杂度 O(n2)O(n^2)O(n2)ps: 数学公式,使用 Latex 语法05.08 周日2.常用数据结构的时间复杂度3.有效括号方法01: 使用栈实现方法02: 使用字符串的替换,循环处理判断即可(时间复杂度高,不建议)4.使用栈实
2022-05-08 10:31:52
237
原创 一些JVM和Mysql的题目 2022.05.06
JVM是Java的重点,InnoDB是 mysql的重点,关于两者的一些题目,方便大家思考和总结
2022-05-06 17:57:27
882
原创 leetcode 424 替换后的最长重复字符(视频版)
题目 字符串s全部由大写的英文字符构成,现在这些英文字符可以最多修改k次,则最长的重复字符是多长?例如:输入:s : “ABABBA”k: 1输出: 4解释: 将字符s中中间的A字符修改为B,则最长重复字符为 BBBB,长度为 4,为最终答案思路 使用窗口滑动左右双指针实现即可。右指针向右移动,出现的字符的次数,用一个长度为 26的 int[]数组来记录即可,移动中不断更新出现最多的字符的次数 maxn,同时判断 窗口中是否和最多出现字符的不...
2022-05-03 21:09:00
362
1
原创 判断两个字符串是否互为旋转词 2022.04.29
本文提到的算法是 左神处的算法书里的例子,有别于其给出的 getIndexOf()函数用来判断一个字符串在另一个字符串中的出现的函数实现(KMP算法),本文则是使用双循环类似双指针的形式实现该功能,时间复杂度O(n^2),空间复杂度O(n)
2022-04-29 22:30:17
366
1
原创 解决Idea中java报错:java:-source1.5中不支持diamond运算符
解决 使用Idea编译Java代码时,提示 java: -source 1.5中不支持 diamond运算符
2022-04-25 21:08:31
2241
原创 Golang实现罗马字符转数字 2022.03.10
// go中的 map是集合var symbolValues = map[byte]int{'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}func romanToInt(s string) (ans int) { n := len(s) // for range的方式来遍历 go的字符串 for i := range s { // go中获取 map的 value值,类似 ph...
2022-03-10 09:56:11
36
原创 Java ConcurrentHashMap的原理和常见问答题 2022.03.10 周四
1) ConcurrentHashMap 采用了分段锁技术,其中 Segment 继承于 ReentrantLock。不会像 HashTable 那样不管是 put 还是 get 操作都需要做同步处理,理论上 ConcurrentHashMap 支持 CurrencyLevel (Segment 数组数量)的线程并发。每当一个线程占用锁访问一个 Segment 时,不会影响到其他的 Segment2)ConcurrentHashMap 的 get 方法是非常高效的,因为整个过程都不需要加锁。3)[j
2022-03-10 09:54:12
186
原创 二叉树最近公共祖先代码 java 2022.03.10
最近公共祖先代码灵魂三问1)这个的函数是做什么的? --函数功能 -- 正向逻辑推理2)base case是什么3)递归后做什么 --反向逻辑推理具体1)这个函数是做什么的? -- 求出来二叉树节点的最近公共祖先 2)base case是什么? -- root == null时,返回 null --p == root || q == root; 返回 root 3)得到递归结果后,做什么 --left 和 right均不为空,则 root则为
2022-03-10 09:49:01
176
原创 Java的函数传参对原参数影响--只有容器类和自定义的对象会受影响
代码如下:package com.haodf.service.openplatform.service.testdjp.sort;import lombok.extern.slf4j.Slf4j;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * @Classname InsertSort * @Description TODO * @Date 2022/1/18 1...
2022-01-29 10:26:29
98
原创 【快速重构】基于Idea Java实现 2022.01.27 周四
1.问题: 方法的参数过多,需要将参数提取到一个包装对象上解决:IntelliJ IDEA提取参数对象重构_w3cschool选择所需的方法。要做到这一点,请打开有问题的类进行编辑,然后在该方法上定位插入符号,在 Structure 视图中单击此类方法,或者在 UML 类图中选择它。 在主菜单或选择的上下文菜单上选择:重构|提取|参数对象。2.【知识点 02】 重构快捷键crl + T包括了 提取常量,变量等...
2022-01-27 17:52:06
335
原创 【问题解决】Java存在三元运算符的自动拆箱操作问题 及 解决
1) 问题:下面的代码会出现 NPE2)原因:从字节码中可以看出,我圈出来的位置发生了 拆箱操作 。装箱:将基本类型用它们对应的引用类型包装起来; 拆箱:将包装类型转换为基本数据类型;详细解释下就是:flag ? 0 : i 这行代码中,0 是基本数据类型 int,返回数据的时候 i 会被强制拆箱成 int 类型,由于 i 的值是 null,因此就抛出了 NPE 异常。3) 解决:采用别的写法,或者再判断下 后边的值,例如修改为(flag || ..
2022-01-24 19:18:36
75
原创 Java前缀树 2022.01.15 周六
1)是什么---定义: Trie,又称前缀树或字典树,是一棵有根树,其每个节点包含以下字段:①指向子节点的指针数组children。② 布尔字段isEnd,表示该节点是否为字符串的结尾。2)为什么Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。3)怎么办 比如构建字符串的 前缀树class Trie { p...
2022-01-15 16:15:55
93
1
原创 Java的引用修改理解 2022.01.06 周四
1.代码样例public class Sudo{ private int pid; public Sudo(int pid){ this.pid = pid; } public int getPid(){ return this.pid; } public void setPid(int pid){ this.pid = pid; } public static void main(String[] args){ Sudo sudo = new Sudo(
2022-01-06 14:23:22
155
原创 【痛并快乐着】用txt文本手撕一道算法题目--2021年最后一天 --2021.12.31 周五
1)题目:2)关于环境问题:【Java学习系列】第1课--Java环境搭建和demo运行 - 程序员的文娱情怀 - 博客园下的评论3) 最终的 mac ,文本编辑器出来的代码import java.util.Arrays;public class Multiply{ public static void main(String[] args){ int[] nums = {1, 2, 3, 4}; int[] outPuts = new int[4]; ...
2021-12-31 19:08:35
426
原创 从Java的拷贝说开去 2021.11.09 周二
1.问题01 :想修改一个对象的值,但是又不想影响原来的对象的值,怎么处理处理01: 使用Java的拷贝即可,就是 复写 clone()方法,同时原来的类,要实现 CloneAble接口。2.问题02: java的 sonar规则 java:S2975 不建议写clone()方法 处理02:新写一个有参的java构造方法,记得里边的赋值是 this.key1 = val1; 不用返回值3.问题03: 怎么能最简单实现上述功能,对原类修改最小呢?处理03: 使用 BeanUti..
2021-11-09 20:16:24
312
原创 Java多线程代码实战 2021.11.03
1.三种方式实现两个线程交替打印1、2.package com.ddd.common.work.thirdweek; import jdk.nashorn.internal.codegen.CompilerConstants; import java.util.concurrent.Callable;import java.util.concurrent.FutureTask; /** * @program: DddJavaStudy * @description: 测试多线程的..
2021-11-03 11:59:21
80
翻译 一次线上Java FullGC的排查处理
1.综述采用 myBatis插件,查询结果数量大于某阈值的告警日志,有了日志,通过traceId马上就能找到对应代码了,可以看到这里从数据库查询30多万数据到内存,触发fullgc也是正常的2.脑图3.原文档掘金...
2021-10-26 17:38:44
60
原创 CAS脑图
参考:掘金https://juejin.cn/post/7023201710164148237?utm_source=gold_browser_extension
2021-10-26 17:09:19
34
原创 Java @Value注解的用处
1.是什么 1.1)概念 @Value注解是 Spring的注解,可以用来将外部的值动态注入到 Bean 中,在 @Value 注解中,可以使用 ${} 或 #{}。${} 与 #{} 的区别如下:(1)@Value("${}"):可以获取对应属性文件中定义的属性值。(2)@Value("#{}"):表示 SpEl 表达式通常用来获取 bean 的属性,或者调用 bean 的某个方法。 1.2)@Value注解用法小结:#{…} 用于执行SpEl表达式,并将...
2021-10-26 15:13:37
1874
1
转载 并查集 2021.10.26
参考:并查集 rank 的优化 | 菜鸟教程1.概念并查集基础一、概念及其介绍并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。并查集的思想是用一个数组表示了整片森林(parent),树的根节点唯一标识了一个集合,我们只要找到了某个元素的的树根,就能确定它在哪个集合里。二、适用说明并查集用在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这...
2021-10-26 14:21:10
13
原创 Golang一道题
func findAnagrams(s string, p string) []int { pm := map[byte]int{} for i := 0; i < len(p); i++ { pm[p[i]]++ } sm := map[byte]int{} var match int var ans []int for l, r := 0, 0; r < len(s); r++ { sm[s[r...
2021-09-10 14:16:55
22
原创 2021-08-17 python 柱状图中最大的矩形
## # [84] 柱状图中最大的矩形##from typing import Listclass Solution: def largestRectangleArea(self, heights: List[int]) -> int: return Solution.doLargestRectangleArea(self, heights) def doLargestRectangleArea(self, heights: List[int]...
2021-08-17 08:34:27
50
转载 php - PHP:抑制函数中的输出
function foo() { echo "Flush!"; return true;}ob_start();$a = foo();ob_end_clean();https://www.coder.work/article/153580
2021-08-15 17:57:00
26
原创 Java IO相关问题 2021.08.14 周六
1.IO从实践角度重新理解BIO和NIO:https://cloud.tencent.com/developer/article/15454222) stracenetstat -natpstrace -ff -o out java SocketBIO用 strace追踪java, redis等与内核的 IO交互情况解析成out的下图代码操作== 客户端:nc建立链接...
2021-08-14 21:06:24
32
原创 关于MySQL的索引的一些理解
1.存储的理解首先是存储kv结构,使用树的结构二叉树=》BST=》AVL树=》红黑树B树=》B+树二叉树的话,要想存储更多的数据,需要加深树的深度,这样就会导致IO操作的次数增多,查询变慢。 所以采用B树,但是因为B树,每层有K,V和data,data占用空间大,三层的结构也就大约能存储 4000多条数量级的数据。只能增加层级,又带来了 IO操作的增多。 优化为B+树,除了最底层保留了数据data,别的层级只是有K,V,这样的话,三层...
2021-08-13 22:29:31
27
《【2022年】精华-java核心知识点.pdf》
2022-05-17
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人