![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础
文章平均质量分 78
在路上的德尔菲
这个作者很懒,什么都没留下…
展开
-
【golang】【源代码】errgroup
errgroup源代码解析原创 2023-02-28 11:17:05 · 121 阅读 · 0 评论 -
【golang】【源代码】reflect.DeepEqual(x,y)函数
golang reflect.DeepEqual(x, y)是怎么实现的呢原创 2023-02-24 18:06:13 · 654 阅读 · 1 评论 -
【总结思考】git常用指令总结
$git --version git版本$git init [project_name] 在当前目录新建一个Git代码库$git clone [address] 拷贝代码到本地当前目录$git config --global user.name “duffy” 配置用户名信息$git config --global user.name 显示配置用户名$git config --global user.email “duffy.wang@xxx.com” 配置email$git config.原创 2022-05-21 18:49:05 · 215 阅读 · 0 评论 -
【必知必会】Go语言学习路径
Go语言核心编程:Go命令行操作,变量、常量、类型、函数、包,数组、切片,指针、结构体、方法、接口,协程、管道、缓存区、选择、互斥锁,defer、panic、recover、error命令行工具:cobra、unfave/cliWeb框架路由:Echo、Gin、Beego对象关系映射:Gorm、Xorm缓存:本地缓存GCache,分布式缓存Go-Redis,GoMemcache日志:日志框架Logrus、Zap,分布式追踪Jaeger实时通信:Melody、Centrifugo测试:GoMo.原创 2022-05-02 12:47:11 · 1481 阅读 · 0 评论 -
【源码阅读】【苦练基本功】Golang内置函数分析
Golang package builtin 中内置函数我分为两部分介绍,第一部分为基础类型,第二部分为包含函数、接口,较复杂一些第一部分// bool is the set of boolean values, true and false.type bool bool// true and false are the two untyped boolean values.const ( true = 0 == 0 // Untyped bool. false = 0 != 0 // U原创 2022-04-23 17:19:15 · 780 阅读 · 0 评论 -
【读书笔记】《MySQL体系结构和存储引擎》
总概每个存储引擎各有各的特点,能够根据具体的应用建立不同存储引擎表,InnoDB、MyISAM、NDB、Memory、Arvhive。InnoDB通过多版本并发控制(MVCC),来获得高并发性,并且实现了SQL标准的4种隔离级别,默认为可重复读,使用一种称为next-key locking的策略来避免幻读。支持事务、行锁设计、外键还提供了插入缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive hash index)、预读(read ahead)等高原创 2021-07-11 22:42:00 · 90 阅读 · 0 评论 -
【线上Case分析】一次慢查询优化及总结思考
背景检查到数据库中存在慢查询情况,发现问题出现这段SQL语句中,查询此的商户是否为热点商户,如果是将更新记录时间;如果不是将插入一条数据,记录此商户为近期热点商户。select `id`, `shopId`, `updateTime` from shop_hot_cachewhere `shopId` = 1045231行动 首先查看数据表结构,发现shopId是有唯一索引的。 PRIMARY KEY 'id' ('id')UNIQUE KEY 'UQ_shopid..原创 2021-06-10 23:28:09 · 296 阅读 · 0 评论 -
【数据库基础干货】MySQL基础及慢查询优化实践
知识储备内存数据库:速度快,成本高,索引:Map、平衡树、T树 ,应用Redis、Memchached磁盘数据库:速度较快,成本适中(虚拟机,物理机),索引哈希,B+ ,应用:MySQL、Oracle分布式数据库:速度较慢,容量大,存储:竖表、HDFSSQL执行阶段客户端发送一个查询给服务器,到达连接器。服务器先检查缓存,如果命中了缓存,立即返回结果。到达分析器服务器端进行SQL的解析,生成解析树。再由优化器生成对应的执行计划。根据执行计划,调用具体存储引擎(InnoDB)将结果返回给客原创 2021-05-21 10:57:55 · 486 阅读 · 3 评论 -
【Java基础干货】Spring BeanCreationException异常总结
Spring BeanCreationException异常总结BeanCreationException,顾名思义是Bean创建过程中抛出异常,具体有以下几种常见异常1、org.springframework.beans.factory.NoSuchBeanDefinitionException 上下文中不存在此Bean,一般原因在没有声明Bean,BeanA尝试注入BeanB,但是spring上下文中不存在BeanB。常见系数:☆☆☆☆☆@Componentpublic clas原创 2021-05-20 16:29:15 · 16912 阅读 · 3 评论 -
【Java基础干货】如何优雅关闭线程池实践总结
public void shutdown() { final ReentrantLock mainLock = this.mainLock; mainLock.lock(); try { // 检查权限 checkShutdownAccess(); // 设置线程池状态 advanceRunState(SHUTDOWN); // 中断空闲线程 interr...原创 2021-05-18 23:39:53 · 1224 阅读 · 0 评论 -
【JVM基础干货】浅谈JVM垃圾回收
哪些对象会进入老年代?减少GC次数和减少GC频率JVM调优主要目的是减少STW时间 —> 转换为减少Full GC次数 —> 减少老年代中对象,使老年代空间不要满 —> 哪些对象会进入老年代,思考能否不让他们进入老年代,在年轻代youngGC阶段回收掉大对象(超过设定阈值):所谓的大对象是指需要大量连续内存空间的java对象,最典型的大对象就是那种很长的字符串以及数组,大对象对虚拟机的内存分配就是坏消息,尤其是一些朝生夕灭的短命大对象,写程序时应避免。长期存活的对象:对象在Surv原创 2021-05-17 09:44:14 · 119 阅读 · 0 评论 -
【经验分享】如何高效避免jar冲突
什么是jar包冲突jar包冲突是指项目中依赖相同的groupId和artifactId不同的version的jar包。具体来说可分为两种情况:应用程序依赖的同一个Jar包出现了多个不同版本,并选择了错误的版本而导致JVM加载不到需要的类或加载了错误版本的类,为了叙述的方便,称之为第一类Jar包冲突问题;同样的类(类的全限定名完全一样)出现在多个不同的依赖Jar包中,即该类有多个版本,并由于Jar包加载的先后顺序导致JVM加载了错误版本的类,称之为第二类Jar包问题。这两种情况所导致的结果其实是一样原创 2021-05-16 12:18:04 · 454 阅读 · 0 评论 -
【Java基础】Guava CacheBuilder源码剖析
CacheBuilder原创 2021-05-16 12:10:18 · 2431 阅读 · 0 评论 -
【数据库基础干货】数据库事务
数据库事务A原子性(Atomicity)一个事务里包含5条SQL语句,要么全部执行成功,要么全部执行失败,如果执行一半失败了需要回滚在操作任何数据之前,首先将数据备份到undolog(回滚日志) 然后进行数据修改,如果出现错误或用户回滚,利用undolog中备份恢复到事务开始之前的状态⚠️如果执行insert操作,undolog中相对应增加一条delete语句,同理update 2-5,undolog增加5-2C一致性(Consistency)原子性、隔离性、持久性是为了保证一致性I隔离性(I原创 2021-05-16 12:01:16 · 134 阅读 · 0 评论 -
【Java基础干货】Stack源码剖析
引子小时候好奇这么高的塔吊是怎么建的,后来知道下面部分是用吊车安装,上面塔吊都是依靠本身来升节的。开始时下面部分一节一节的搭高,完工后从上面一节一节的取掉,因此最底下那一节肯定是最后才取出来的,这种结构类似Stack。Stack简介Stack也称为栈,是一种后进先出的数据结构(last-in-first-out,LIFO),继承了Vector,并且扩充了五种方法,分别是push、pop、peek、empty、search源码分析publicStack(){}...原创 2021-05-16 11:31:57 · 203 阅读 · 0 评论 -
【后台开发必知必会】日常开发性能优化总结
“现代大规模关键性系统中的Java性能调优,是一项富有挑战的任务。需要关注各种问题,包括算法结构、内存分配模式及磁盘和文件I/O使用方式。性能调优最困难的是找出问题,即便是经验丰富的人也会被他们的自觉所误导。性能杀手总是隐藏在最意想不到的地方”—James Gosling...原创 2021-05-16 11:16:16 · 788 阅读 · 0 评论 -
【Java基础干货】TreeMap源码剖析
一个例子这是一道北大计院期末考试题,偶然看到,以下是我直观想法,使用TreeSet辅助实现功能publicclassPerson{privateintvalue;privateintrank;publicPerson(intvalue,intrank){this.value=value;this.rank=rank;}publicintgetValue(){...原创 2021-05-16 11:02:13 · 174 阅读 · 0 评论 -
【Java基础干货】ArrayList源码剖析
本文所有代码来自JDK1.8ArrayList简介publicclassArrayList<E>extendsAbstractList<E>implementsList<E>,RandomAccess,Cloneable,java.io.SerializableArrayList继承了AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable接口...原创 2021-05-16 10:52:49 · 169 阅读 · 0 评论 -
【Java基础干货】LinkedList源码剖析
微信公众号:Duffy说码[如果你觉得这篇文章对你有帮助,欢迎关注]本文所有代码来自JDK1.8引子想象幼儿园小朋友放学回家,老师要求小朋友们排成一字队,前后小朋友都手牵着手,举个栗子小明是排在前面第一位同学,他的右手牵着后面小红的左手,小红的右手牵着后面小强的左手,以此类推,直到所有大家都手牵着手,开开心心的放学回家~由于小冯刚刚拉肚子没有在队伍中,他现在想加入到队伍中而且想站在小红的后面,他需要先让小红和小强的手松开,然后左手牵住小红的右手,右手牵住小强的左手,这样就加入到队伍中..原创 2021-05-15 23:01:35 · 126 阅读 · 0 评论 -
【Java基础干货】HashMap源码剖析
微信公众号:Duffy说码如果你觉得这篇文章对你你有帮助,欢迎关注:)本文所有源码来自JDK1.8Hashmap简介publicclassHashMap<K,V>extendsAbstractMap<K,V>implementsMap<K,V>,Cloneable,SerializableHashmap继承AbstractMap,现实了Map、Cloneable、Serializable接口,此实现提供所有可选的映射操作...原创 2021-05-15 22:52:58 · 129 阅读 · 0 评论 -
【译文】Restful API规范
我们在Android和iOS系统中构建各种形状和大小的应用程序(App),但它们都是与服务器连通的,如今几乎没有App是不连接Internet情况下运行的,这意味着它们可以与后端、Web服务及API进行交互,这些API可以由Google,亚马逊,Facebook或类似的第三方提供,也可以由内部开发。由于公司一开始没有花时间计划好API,内部很多API是重复的此外,即使有大量的App,并非所有人都专门为App构建了Web服务或API,根据以往经验,我们发现建立一个如何为移动App构建更好的API规则可以节省原创 2021-05-15 12:33:29 · 219 阅读 · 0 评论 -
【Java基础干货】动态代理核心代码
JDK动态代理/** * Created by zejian on 2017/2/11. * Blog : http://blog.csdn.net/javazejian [原文地址,请尊重原创] *///自定义的接口类,JDK动态代理的实现必须有对应的接口类public interface ExInterface { void execute();}//A类,实现了ExInterface接口类public class A implements ExInterface{原创 2021-05-10 20:18:02 · 147 阅读 · 0 评论 -
【经验总结】日常工作中常用Linux命令汇总
lsls -a //显示隐藏的文件ls -l //显示文件详细信息,包括权限,软链接 简写llls -l opt //查看opt目录的链接ls -lh //文件适合的大小ll -thr //占用磁盘空间cdcd //回到主目录cd ..//回到父目录cd - //回到你操作的过下一个目录中cd /data/xxx //到日志目录ifconfigifconfig | grep inet //本机ip地址chmodchmod 777 text.txt //text.txt所原创 2021-05-09 23:41:19 · 2318 阅读 · 0 评论 -
JSON取数工具——JsonPath
简介JsonPath是一种简单的方法来提取给定JSON文档的部分内容。Data may be interactively found and extracted out of JSON structures on the client without special scripting.JSON data requested by the client can be reduced to the relevant parts on the server, such minimizing the ba原创 2021-05-09 23:19:19 · 1800 阅读 · 0 评论 -
【Java基础干货】12种方法让你彻底告别空指针异常
????What 什么是空指针NullPointerException(NPE)空指针是运行时异常,所以就导致在编码时不易发现,因为Java中对象可以设为null,当去使用为null的对象操作时会抛出空指针,NullPointerException 官方解释????NullPointerException is a RuntimeException. In Java, a special null value can be assigned to an object reference. NullPo原创 2021-05-09 22:49:50 · 853 阅读 · 0 评论