匠心零度

其他

ES倒排索引结构设计太牛逼,一切都是为了搜索性能

Dictionary看成一步,就是找Term。因此,可以这样理解倒排索引:通过单词找到对应的倒排列表,根据倒排列表中的倒排项进而可以找到文档记录)
2021年1月18日
其他

缓存穿透,缓存击穿,缓存雪崩解决方案分析

timeout(timeout2)小。当从cache读取到timeout1发现它已经过期时候,马上延长timeout1并重新设置到cache。然后再从数据库加载数据并设置到cache中。伪代码如下:
2021年1月17日
其他

如何在 IDEA 中 Debug Spring 源码?

的这个源码环境还是稍微有点复杂的,机缘巧合,之前有朋友(@上杰)研究了一个星期,并且最后把环境搞好了,还顺便给我把环境也搞了下,大概几分钟操作就行,其他就让电脑在那边下载就行了;
2021年1月1日
其他

IDEA 干货汇总分享

依赖冲突的高能神器!是时候扔掉Postman了,又一个被低估的IDEA插件出来了...Java人员高效正确管理你的IDEA!高效编程:在IntelliJ
2020年6月30日
其他

IDEA的好兄弟,真香,势必干掉Navicat!

运行存储过程从过程的上下文菜单中选择“执行”。将生成SQL代码。输入所需参数的值,然后单击“确定”。如您所见,我们检索此mysql过程的输出,因为我们有SQL代码从JDBC驱动程序获取结果集:#
2020年6月25日
其他

说实话,Intellij IDEA 自带的 Vim 插件真心不错。。。

completion中把延迟设为500ms以上或干脆关掉。在录制宏的过程中避免触发代码自动完成功能。录制一些长期有效的宏时,开始录制后,最好先用0,^,T,
2020年6月21日
其他

推荐 33 个 IDEA 最牛配置,好用到飞起来!

line方式需要指定svn.exe的路径,例如:D:\tools\TortoiseSVN\bin\svn.exe2.注意,安装TortoiseSVN时路径中不要带空格,例如:C:\Program
2020年6月18日
其他

从 0 编写自己的第一款 IDEA 插件!贼好用!

Edition:http://www.jetbrains.org/intellij/sdk/docs/basics/checkout_and_build_community.html我们需要建立一个
2020年6月13日
其他

当IntelliJ IDEA2020.1遇上JDK14:所有美好环环相扣

BY-SA版权协议,原文链接:https://blog.csdn.net/weixin_43413658/article/details/105839472
2020年6月10日
其他

安利一批 Intellij IDEA 常用的牛逼插件

RestfulToolkit推荐指数:☆☆☆☆☆推荐理由:spring的开发中经常有根据浏览器url找对应action方法的需求,这个可以快捷的根据url跳转,不用findAll查询了8、高亮提示
2020年5月22日
其他

Intellij IDEA高阶debug大杀器

0。该方法切勿在真实环境中使用!!!因为丢弃栈帧如果没有操作释放干净可能会影响变量的值,导致程序结果与真实结果不一致!!!结束语你可能习惯了单步
2020年5月8日
其他

经验篇:Intellij IDEA 看源码必备的技能!

个绝技,这篇必看。但是可以利用图形,或者配合IDEA的structure方便快捷地进入某个类的源码进行查看。双击某个类后,你就可以在其下的方法列表中游走,对于你想查看的方法,选中后点击右键,选择
2020年5月5日
其他

IntelliJ IDEA天天用,却不知道这些Debug技巧?

变量观察变量区和观察区可以合并在一起,也可以分开来显示(如下图所示),我比较喜欢分开来显示,这样局部变量、参数以及静态变量显示在变量区,要观察的表达式显示在观察区。观察区类似于求值表达式中的
2020年4月19日
其他

消息队列探秘 – RabbitMQ 消息队列介绍

已经被某个Consumer正确的接收到了,那么该Message就会被从queue中移除。当然也可以让同一个Message发送到很多的Consumer。如果一个queue没被任何的Consumer
2020年4月12日
其他

IDEA真牛逼,900行"又臭又长"的类重构,几分钟搞定

选中要搬的成员变量和函数,右键->Refactor->Extract->Delegate(抽取一个委托者,委托他来管理这部分变量和函数,如果只有变量或只有函数,可以抽出参数对象Paramater
2020年3月27日
其他

在 IntelliJ IDEA 中使用 Git,太方便了!

将本地代码提交到远程仓库2.8、在Idea命令行使用gitmac下同时按alt+F12,进入idea命令行常见的命令:clone项目
2020年3月21日
其他

IDEA 效率插件推荐!

点击上方“匠心零度”,选择“设为星标”做积极的人,而不是积极废人作者:HeloWxl来源:www.jianshu.com/p/e4192d7c6844EasyCode是基于IntelliJ
2020年2月14日
其他

Idea 公司真牛逼,发行适合程序员编程字体

点击上方“匠心零度”,选择“设为星标”做积极的人,而不是积极废人来源:IT之家https://www.ithome.com/0/468/814.htmJetBrains今天推出了一种新字体,即JetBrains
2020年1月18日
其他

IDEA高级玩法:集成JIRA、UML类图插件、SSH、FTP、Database管理...

三、SSH集成java项目经常会在linux上部署,每次要切换到SecureCRT这类终端工具未免太麻烦,idea也想到了这一点:然后填入IP、用户名、密码啥的
2020年1月12日
其他

idea 高效找出全部未被使用的代码

触摸板点来点去,那样效率的确不高;END如果读完觉得有收获的话,欢迎点【好看】,关注【匠心零度】,查阅更多精彩历史!!!让我“好看”
2019年12月21日
其他

是时候装逼了,试试 IDEA 解决 Maven 依赖冲突的高能神器!

点击上方“匠心零度”,选择“设为星标”做积极的人,而不是积极废人来源:http://suo.im/6brHfY1、何为依赖冲突Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Maven的依赖机制会导致Jar包的冲突。举个例子,现在你的项目中,使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。但是A依赖的C的版本是1.0,B依赖的C的版本是2.0。这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本的C,这时Maven会依据依赖路径最短优先原则,来决定使用哪个版本的Jar包,而另一个无用的Jar包则未被使用,这就是所谓的依赖冲突。在大多数时候,依赖冲突可能并不会对系统造成什么异常,因为Maven始终选择了一个Jar包来使用。但是,不排除在某些特定条件下,会出现类似找不到类的异常,所以,只要存在依赖冲突,在我看来,最好还是解决掉,不要给系统留下隐患。2、解决方法解决依赖冲突的方法,就是使用Maven提供的标签,标签需要放在标签内部,就像下面这样:
2019年12月13日
其他

“RPC好,还是RESTful好?”,这个问题不简单

在说RPC和HTTP的区别之前,我觉的有必要了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层:(从上到下)
2019年12月5日
其他

是时候扔掉Postman了,又一个被低估的IDEA插件出来了...

点击上方“匠心零度”,选择“设为星标”做积极的人,而不是积极废人作者:陈凯玲来源:https://url.cn/5CHN7Il接口调试是每个软件开发从业者必不可少的一项技能,一个项目的的完成,可能接口测试调试的时间比真正开发写代码的时间还要多,几乎是每个开发的日常工作项。所谓工欲善其事必先利其器,在没有尝到IDEA
2019年11月22日
其他

Java人员高效正确管理你的IDEA!

点击上方“匠心零度”,选择“设为星标”做积极的人,而不是积极废人来源:https://www.jianshu.com/p/35f48022a00b每次都是去IDEA官网下载相应版本,每次有新版本更新了也不知道,原来还有这种方式…………下载地址
2019年10月22日
其他

高效编程:在IntelliJ IDEA中使用VIM

点击上方“匠心零度”,选择“设为星标”做积极的人,而不是积极废人作者:Léon原文:https://www.cnblogs.com/caroar/articles/6489059.htmlIdeaVim插件可以让你在IntelliJ
2019年10月6日
其他

看完这篇还不清楚Netty的内存管理,那我就哭了!

说明在学习Netty的时候,ByteBuf随处可见,但是如何高效分配ByteBuf还是很复杂的,Netty的池化内存分配这块还是比较难的,很多人学习过,看过但是还是云里雾里的,本篇文章就是主要来讲解:Netty分配池化的堆外内存的细节,期待可以让你明白!!!由于为了更好的表达,文章中的图我最少画了6小时,画的不熟悉,并且也强调一些细节上。由于该源码中涉及到大量的二进制操作,建议看看我之前写的2篇二进制文章:java二进制相关基础,二进制实战技巧。ByteBuf重要性ByteBuf在Netty中一直存在,读写必备!ByteBuf是Netty的数据容器,高效分配ByteBuf至关重要!Netty从socket读取数据。Netty准备把数据写到socket中去。通过这里我们就可以看到,再把数据写socket的之前会判断是否是堆外内存,如果不是会构造一个directbuffer对象的,细节代码如下:if
2019年8月10日
其他

惊:FastThreadLocal吞吐量居然是ThreadLocal的3倍!!!

接着上次手撕面试题ThreadLocal!!!面试官一听,哎呦不错哦!本文将继续上文的话题,来聊聊FastThreadLocal,目前关于FastThreadLocal的很多文章都有点老有点过时了(本文将澄清几个误区),很多文章关于FastThreadLocal介绍的也不全,希望本篇文章可以带你彻底理解FastThreadLocal!!!FastThreadLocal是Netty提供的,在池化内存分配等都有涉及到!关于FastThreadLocal,零度准备从这几个方面进行讲解:FastThreadLocal的使用。FastThreadLocal并不是什么情况都快,你要用对才会快。FastThreadLocal利用字节填充来解决伪共享问题。FastThreadLocal比ThreadLocal快,并不是空间换时间。FastThreadLocal不在使用ObjectCleaner处理泄漏,必要的时候建议重写onRemoval方法。FastThreadLocal为什么快?FastThreadLocal的使用FastThreadLocal用法上兼容ThreadLocalFastThreadLocal使用示例代码:public
2019年7月2日
其他

手撕面试题ThreadLocal!!!

说明面试官:讲讲你对ThreadLocal的一些理解。那么我们该怎么回答呢????你也可以思考下,下面看看零度的思考;ThreadLocal用在什么地方?ThreadLocal一些细节!ThreadLocal的最佳实践!思考ThreadLocal用在什么地方?讨论ThreadLocal用在什么地方前,我们先明确下,如果仅仅就一个线程,那么都不用谈ThreadLocal的,ThreadLocal是用在多线程的场景的!!!ThreadLocal归纳下来就2类用途:保存线程上下文信息,在任意需要的地方可以获取!!!线程安全的,避免某些情况需要考虑线程安全必须同步带来的性能损失!!!保存线程上下文信息,在任意需要的地方可以获取!!!由于ThreadLocal的特性,同一线程在某地方进行设置,在随后的任意地方都可以获取到。从而可以用来保存线程上下文信息。常用的比如每个请求怎么把一串后续关联起来,就可以用ThreadLocal进行set,在后续的任意需要记录日志的方法里面进行get获取到请求id,从而把整个请求串起来。还有比如Spring的事务管理,用ThreadLocal存储Connection,从而各个DAO可以获取同一Connection,可以进行事务回滚,提交等操作。备注:ThreadLocal的这种用处,很多时候是用在一些优秀的框架里面的,一般我们很少接触,反而下面的场景我们接触的更多一些!线程安全的,避免某些情况需要考虑线程安全必须同步带来的性能损失!!!ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。但是ThreadLocal也有局限性,我们来看看阿里规范:每个线程往ThreadLocal中读写数据是线程隔离,互相之间不会影响的,所以ThreadLocal无法解决共享对象的更新问题!由于不需要共享信息,自然就不存在竞争问题了,从而保证了某些情况下线程的安全,以及避免了某些情况需要考虑线程安全必须同步带来的性能损失!!!这类场景阿里规范里面也提到了:ThreadLocal一些细节!ThreaLocal使用示例代码:public
2019年6月19日
其他

明白这个,下次面试你将更顺利!

你也可以了解你是和这个技术的一些故事,一些踩坑经历(你是怎么在绝望中,熬过去,找到希望呢?怎么解决这个坑的,这些可能不是技术,但是是非常重要的软技术)等等情况!!!
2019年6月16日
其他

面试这样回答Java调优,至少加1000块!!!

groupid)的复合索引,缩小了单个事务锁定的记录条数,也实现了不同计划下的推广组数据记录的隔离,从而减少该类死锁的发生几率。通常来说,对于数据库层的调优我们基本上会从以下几个方面出发:(1)在
2019年6月14日
其他

IDEA中用好Lombok,撸码效率至少提升5倍

Lombok的scope=provided,说明它只在编译阶段生效,不需要打入包中。事实正是如此,Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件。
2019年5月25日
其他

Java常见疑惑和陷阱-总结挺全!

总结的Java常见的疑惑和陷阱。对于文中列举的例子,希望大家都能好好跑一下看看实际结果,然后思考一下为什么是这个结果。相信通过实践,大家能够收获更多~
2019年5月8日
其他

Netty推荐addListener回调异步执行

1说明Netty推荐使用addListener的方式来回调异步执行的结果,这种方式优于Future.get,能够更精确地把握异步执行结束的时间。2错误理解使用addListener的方式代码如下:代码运行结果:
2018年12月4日
其他

一次堆外OOM问题排查

背景线上服务有一台机器访问不通(一个管理平台),在公司的服务治理平台上查看服务的状况是正常的,说明进程还在。进程并没有完全crash掉。去线上查看机器日志,发现了大量的OOM异常:017-03-15
2018年8月31日
其他

【死磕Java并发】—–J.U.C之并发工具类:CyclicBarrier

以匠心,铸非凡!看零度如何一步一步实践过来,java技术干货及实践(重点分享JVM、并发、全链路调优)及一些感悟,内容多为原创,欢迎关注!
2018年4月30日
其他

【死磕Java并发】—–J.U.C之重入锁:ReentrantLock

ReentrantLock里面大部分的功能都是委托给Sync来实现的,同时Sync内部定义了lock()抽象方法由其子类去实现,默认实现了nonfairTryAcquire(int
2018年4月26日
其他

【死磕Java并发】—–J.U.C之AQS(一篇就够了)

AQS解决了子类实现同步器时涉及当的大量细节问题,例如获取同步状态、FIFO同步队列。基于AQS来构建同步器可以带来很多好处。它不仅能够极大地减少实现工作,而且也不必处理在多个位置上发生的竞争问题。
2018年4月25日
其他

一起学习,G1垃圾回收算法

每个Region被标记了E、S、O和H,说明每个Region在运行时都充当了一种角色,其中H是以往算法中没有的,它代表Humongous,这表示这些Region存储的是巨型对象(humongous
2018年4月21日
其他

图解CMS垃圾回收机制,你值得拥有

当条件满足时,采用“标记-清理”算法对老年代进行回收,过程可以说很简单,标记出存活对象,清理掉垃圾对象,但是为了实现整个过程的低延迟,实际算法远远没这么简单,整个过程分为如下几个部分:
2018年4月20日
其他

让你rocketmq用得比预期要好的 1 种方法

备注:今天就大概先列出这么多问题,当我们使用一个技术的时候,需要多问问,没有蹩脚的中间件,只有我们没有了解好,没有使用好,上述这些都是问的形式,这么问题的答案我都会在后续文章里面进行详细说明。
2018年4月19日
其他

rocketmq番外篇(一):开发命令行

以匠心,铸非凡!看零度如何一步一步实践过来,java技术干货及实践(重点分享JVM、并发、全链路调优)及一些感悟,内容多为原创,欢迎关注!
2018年4月18日
其他

程序员知识体系探索:点、线、面、体

在淘宝平台这个面上,要让淘宝卖家赚点钱,淘宝才能发展。模特服务、广告服务等都是为线(卖家)或者面(淘宝平台)服务的。难得的是这些点和线形成了网络协同效应,这样就比纯粹上下游关系的模式多了很多种可能。
2018年4月17日
其他

netty源码分析之服务端启动全解析

也是netty里面的一大核心模块,初次看源码,看到这里,我们大可不必深挖这个对象,而是在用到的时候再回来深究,只要记住,这个对象在创建NioServerSocketChannel对象的时候被创建即可
2018年4月16日
其他

做人的六原则 40条心计 共勉

1、人脉是成功的命脉。2、结交比自己优秀的人。3、紧记别人的姓名。4、一定要树立一个自己兄弟的档案。5、把精力放在关键人物身上。6、真诚协助别人。7、做人要诚信。8、帮别人做事,要把人情做足。
2018年4月15日
其他

RocketMQ(一):源码调试

)再看看是否是软连接,如果是使用了expr的模式匹配来获取连接文件的真实路径并赋值给PRG,之后就是设置ROCKETMQ_HOME值,就是当前脚本所在路径上一层。
2018年4月14日
其他

MQ消息轨迹

本文档介绍MQ消息轨迹功能的使用,主要内容包括消息轨迹基本原理,使用场景,使用指南,使用案例。对于消息轨迹的查询结果有疑问请参考FAQ部分文档。
2018年4月13日
其他

消息中间件选型分析

消息中间件选型还有一个考量标准就是尽量贴合团队自身的技术栈体系,虽然说没有蹩脚的消息中间件只有蹩脚的程序员,但是让一个C栈的团队去深挖PhxQueue总比去深挖Scala编写的Kafka要容易的多。
2018年4月12日
其他

RocketMQ(六):namesrv再探

topicConfig);topicConfigSerializeWrapper.setTopicConfigTable(topicConfigConcurrentHashMap);Channel
2018年4月11日
其他

RocketMQ(五):namesrv初探

发出请求服务时,客户端通过请求负载平衡器,负载均衡器通过注册中心服务知道所有的服务实例。负载均衡器接着使用负载均衡算法选择可用的服务实例中的一个并进行发送。
2018年4月10日
其他

CRC 校验

上篇RocketMQ(二):RPC通讯介绍了rocketmq的一些rpc细节,其实这些内容不仅仅是rocketmq内容,任何通信模块基本都是类似的,这块内容是高度公用的,今天我们来看看
2018年4月8日