程序员 jet_qi
白龙马服务平台员工,擅长并发开发(juc,netty),分布式(springboot+MQ,rpc,ES,dubbo),擅长商品域,财务域业务知识,是设计模式实战的狂热者。
博客主要分享内容:职场经验分享、自学教程、面试真题解析、面试经验分享、技术专题深度解析等。
关于我的文章:那些你很容易就能看得懂的文章,是不会让你显得与众不同的,我会保证所写的每一句话,每一行代码都经过了认真的推敲、仔细的斟酌,希望大家能有所收获。
吃不了学习的苦,就得吃生活的苦,别在最应该努力的年纪躺平
展开
-
Java 后端技术清单 2023版
JAVA后端技术清单文章目录JAVA后端技术清单1. 开发环境2. 基础知识4. 编码规范及技术博客5. 动⼿实践1. 开发环境JDK: 版本1.8+GIT:源码管理平台(基于开源GitLab)简易指南 http://rogerdudler.github.io/git-guide/index.zh.htmlMaven: jar包版本管理平台简易指南 https://www.runoob.com/maven/maven-tutorial.htmlIDEA: Intell原创 2022-02-27 00:39:52 · 1201 阅读 · 0 评论 -
Google guava第一讲:guava缓存实战/使用场景/缓存清理/最佳实践/caffeine实战
Guava缓存实战及使用场景摘要:本文先介绍了Guava Cache囊括的基本使用方法,然后结合体系类图和LocalCache的数据结构对典型的几个方法源码进行流程分析。重点 缓存的命中率,缓存的失效时间,缓存的OOM,缓存的统计数据等。文章目录Guava缓存实战及使用场景1 为什么使用本地缓存1.1 适用场景2 如何使用Guava缓存(缓存容量/超时时间/移除监听器/缓存加载器)2.1 ......原创 2020-04-15 16:34:03 · 5144 阅读 · 0 评论 -
Google Guava第五讲:本地缓存实战及踩坑
如下图,是一次最基本的网络请求。用户请求从界面(浏览器或 App 界面)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容。随着互联网的普及,内容信息越来越复杂,用户数和访问量越来越大,我们的应用需要支撑更多的并发量,同时我们的应用服务器和数据库服务器所做的计算也越来越多。但是往往我们的应用服务器资源是有限的,数据库每秒能接受的请求次数也是有限的。如何能够有效利用有限的资源来提供尽可能大的吞吐量?是每个开发同学绕不开的课题。一个有效的办法就是引入缓存,打破标准流程,原创 2024-04-15 11:20:18 · 419 阅读 · 0 评论 -
开发工具篇第32讲:阿里云短信&推送服务的接入和踩坑
近期由于业务需求,新项目采用了阿里云短信和推送功能,极大地降低了开发成本,借助这类工具,让开发者最有效地与用户保持连接,从而提高用户活跃度、提高应用的留存率。本文是开发工具篇第32讲,讲解阿里云短信&推送服务的接入和踩坑原创 2024-03-12 20:43:48 · 156 阅读 · 0 评论 -
开发工具篇第36讲:如何使用Typora+Gitee+PicGo+OSS+Idea创建属于自己的云笔记
好记性不如烂笔头,记笔记是一个好习惯,本人习惯通过Typora软件记录markdown笔记,但是遇到了多设备同步笔记的问题,本文是开发工具篇第36讲,介绍通过Typora+PicGo+Gitee搭建个人云笔记平台,使得多设备都能看到最新笔记,云笔记搭建教程详见下文!原创 2024-02-26 20:54:02 · 268 阅读 · 2 评论 -
代码质量管理: Sonarlint插件+ Sonarqube可视化页面
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量。Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具不同,Sonar 并不是简单地把不同的代码检查工具结果直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理原创 2024-02-01 15:34:03 · 276 阅读 · 0 评论 -
开发工具篇第二十一讲:详解业务日志监控工具Grafana
本文是开发工具篇第21讲:对业务日志监控工具Grafana实战进行详解。grafana监控用于对业务日志的监控,统计业务日志某个字段的个数或者比例进行钉钉或者电话报警。原创 2023-12-22 12:15:52 · 1400 阅读 · 0 评论 -
Google Guava第三讲:Caffeine实战 - 从场景使用到原理分析
**摘要**:在本文中,我们来看看 Caffeine — 一个高性能的 Java 缓存库。本文先介绍为什么使用 Caffeine 缓存;接着讲解其底层数据结构,分析其性能优异的原因;然后结合实际业务,讲解 Caffeine 缓存使用方法、清理方法及使用过程中踩过的坑;最后讲解在使用本地缓存时可以优化的方向。原创 2023-08-22 09:00:00 · 222 阅读 · 0 评论 -
开发工具篇第一讲:Intellij Idea使用技巧汇总
idea使用技巧文章目录1、IDEA中如何设置文件头注释和方法注释1、IDEA中如何设置文件头注释和方法注释为什么要设置注释类、类属性、类方法的注释必须使用javadoc规范,使用/*内容/格式,不得使用//xxx方式和/xxx/方式。说明:在IDE编辑窗口中,javadoc方式会提示相关注释,生成javadoc可以正确输出相应注释;在IDE中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率类注释路径:file->setting ->Edi..原创 2021-12-05 00:36:29 · 390 阅读 · 0 评论 -
开发工具篇第二讲:git使用技巧 从基础到进阶(快速入门/高阶用法/git别名/项目实战/gitLab)
git使用技巧 从基础到进阶1、2、原创 2020-11-30 17:10:45 · 657 阅读 · 0 评论 -
开发工具篇第三讲:你连maven都不懂面试官怎么敢要你
maven 从入门到实战文章目录1、为什么使用maven2、Maven是什么?maven 踩坑1、为什么使用maven目前的技术在开发中存在的问题?1、一个项目就是一个工程如果项目非常庞大,就不适合继续使用package来划分模块。最好是一个模块对应一个工程,利于分工协作。借助Maven可以将一个项目拆分为多个工程。2、项目中需要的jar包需要手动复制、粘贴到WEB_INF/lib目录下带来的问题是:同样的jar包文件重复出现在不同的项目工程中,浪费存储空间,借助maven,可以.原创 2022-03-05 10:00:00 · 6607 阅读 · 1 评论 -
开发工具篇第七讲:阿里云日志查询与分析
公司使用的是阿里云日志服务。原创 2022-08-09 20:08:02 · 5309 阅读 · 0 评论 -
开发工具篇第八讲:阿里云OSS对象存储服务
阿里云对象存储服务(Object Storage Service,简称 OSS),具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据,在我们公司用于上传图片,访问图片文章目录1、相关概念2、快速接入3、常见问题4、原理分析5、自助工具6、OSS使用踩坑 review1、相关概念1、存储类型(Storage Class)OSS按数据存储场景从热到冷提供标准、低频访问、归档三种存储类型。其中标准存储类型提供高可靠、高可用、高性能的对象存储服务,.原创 2021-03-10 09:52:53 · 2534 阅读 · 0 评论 -
开发工具篇第九讲:菜鸟入坑指南
本文是开发工具篇第九讲:菜鸟入坑指南。针对新人上手慢的问题,写了这篇入坑指南,方便自己回顾,总结。本文分为四个部分,分别为jenkins使用技巧;常用软件操作命令;开发手册;调试手册。主要材料来自于开发过程中遇到的坑,部分内容在后续会补充。...原创 2022-08-26 13:54:12 · 254 阅读 · 0 评论 -
开发工具篇第十一讲:常用开发库 - Hutool包
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。原创 2023-03-22 18:00:39 · 659 阅读 · 0 评论 -
开发工具篇第十二讲:常用开发库 - Lombok工具库详解
优缺点优点:大大减少了代码量,使代码非常简洁缺点:可能存在对队友不友好、对代码不友好、对调试不友好、对升级不友好等问题。Lombok还会导致破坏封装性的问题。@Data中覆盖equals和hashCode的坑等。什么样的情况使用Lombok团队整体的共识,IDE规范,相关代码规范等对Lombok足够了解,比如知道其中的坑等不推荐使用Lombok的理由其实我们不缺时间写Getter和Setter的,这些代码通常是由IDE生成的。简化也是有代价的。对Lombok认知不够,导致带来的坑。原创 2023-01-05 09:00:00 · 535 阅读 · 4 评论 -
开发工具篇第25讲:阿里云MFA绑定Chrome浏览器Authenticator插件
登录阿里云旗下产品时,需要使用mfa登录,每次如果要用手机看mfa码很麻烦, Chrome浏览器提供了一个快捷的登录方法,可以提升验证码效率。原创 2023-07-12 14:30:57 · 2980 阅读 · 0 评论 -
开发工具篇第二十六讲:使用IDEA进行本地调试和远程调试
Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化;并且在实际的排错过程中,还会用到Remote Debug。本文是开发工具篇第二十六讲,主要介绍基于IDEA的Debug和Remote Debug的技巧。原创 2023-07-18 21:29:53 · 1096 阅读 · 0 评论 -
开发工具篇第二十七讲:Idea热加载插件JRebel的激活与使用
本文是开发工具篇第二十七讲,在这里为大家带来一款Idea集成的热加载插件-JRbel。但是这个插件是需要收费的,在这里为大家带来激活使用的详细教程,手把手教学一波。亲测可用!原创 2023-07-20 11:22:48 · 392 阅读 · 0 评论 -
项目实战第二讲:高并发下如何保障缓存和数据库的一致性
项目实战第二讲:如何优雅地清理缓存原创 2022-03-08 00:05:14 · 985 阅读 · 0 评论 -
Google guava第二讲:Ratelimiter限流原理与实现
在开发高并发系统时,有三把利器用来保护系统:**缓存、降级和限流**。限流可以认为服务降级的一种,限流通过限制请求的流量以达到保护系统的目的。- 一般来说,系统的吞吐量是可以计算出一个阈值的,为了保证系统的稳定运行,一旦达到这个阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理,或者部分拒绝处理等等。否则,很容易导致服务器的宕机。...原创 2022-08-27 11:12:49 · 2314 阅读 · 0 评论