![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员
文章平均质量分 86
司腾
程序不是年轻的专利,但是,它属于年轻!
展开
-
你不知道的Map家族中的那些冷门容器
本篇文章主要讲解下Map家族中3个相对冷门的容器,分别是WeakHashMap、EnumMap、IdentityHashMap, 想必大家在平时的工作中也很少用到,或者压根不知道他们的特性以及适用场景,本篇文章就带你一探究竟。WeakHashMap中的entry是一个弱引用,当除了自身有对key的引用外,此key没有其他引用,那么GC之后此map会自动丢弃此值。不是线程安全的可以存储null用于枚举类型键的专用Map实现。枚举映射中的所有键必须来自创建映射时显式或隐式指定的单个枚举类型。原创 2022-09-15 09:42:47 · 81 阅读 · 0 评论 -
跳槽一次能涨多少,今天带你见识到跳槽天花板,涨薪80%
这份总结内容涵盖极广包括各大厂最新面试题以及面经,还有涉及JVM,Mysql,并发,Spring,Mybatis,Redis,MQ,Zookeeper,Netty,Dubbo,Spring Boot,Spring Cloud,数据结构与算法......等相关技术领域的大厂面试题及详解,还有相关面试突击系列视频以及学习路线。有句话叫舍不得孩子套不住狼。想要达到你的目标就要不断的去学习进步,总有一天必能成为一位有逼格的程序员!原创 2022-09-14 17:07:23 · 992 阅读 · 0 评论 -
首发的这份IntelliJ IDEA开发手册,GitHub百万标星,真是名不虚传 ~
开发工具与编程语言及其他技术一样重要,并且值得我们关注。让工具与技术更好地结合,这不仅是对能力的一种要求,也是对待计算机科学的认真态度。本书以IntelliJ IDEA的操作及使用为主线,同时贯穿示例教学,全面地向读者展示其强大的开发与管理能力。...原创 2022-06-06 21:41:13 · 310 阅读 · 0 评论 -
HUAWEI内网最新发布了一份九章的网络协议笔记,霸榜GitHub百万收藏
想要学习网络协议就绕不开它的组成要素:语义。语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。语法。语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。时序。时序是对事件发生顺序的详细说明。(也可称为“同步”)。...原创 2022-06-06 21:22:10 · 128 阅读 · 0 评论 -
这份Java面试八股文让329人成功进大厂,堪称2022最强
一、Java基础 44 道1. 解释下什么是面向对象?面向对象和面向过程的区别?2. 面向对象的三大特性?分别解释下?3. JDK、JRE、JVM 三者之间的关系?4. 重载和重写的区别?5. Java 中是否可以重写一个 private 或者 static 方法?6. 构造方法有哪些特性?...原创 2022-06-06 13:11:21 · 227 阅读 · 0 评论 -
阿里“宝妈级”之作,这份Spring Security应用到源码手册,全是精华
对于开发人员而言,如何使用各种技术体系解决安全性问题是一大困惑。经验丰富的开发人员需要熟练使用 Spring Security 框架来应对业务发展的需求。例如,全面掌握Spring Security 框架提供的认证、授权、方法及安全访问、OAuth2、JWT 等核心功能,构建自己对系统安全性设计的知识体系和解决方案。而对于架构师而言,难点在于如何基于框架提供的功能并结合具体的业务场景,对框架进行扩展和定制化开发。这就需要他们对Spring Security 对用户认证和访问授权等核心功...原创 2022-05-23 17:29:40 · 121 阅读 · 0 评论 -
膜拜~ 终于拿到了美团老大哥分享的 Netty 源码剖析与应用 PDF
前言Netty 是一款基于 NIO(非阻塞 I/O)开发的网络框架,与传统 BIO 相比,它的并发性能得到了很大的提高,而且更加节省资源。Netty 不仅封装了 NIO 操作的很多细节;在设计上还基于灵活、可扩展的事件驱动模型与高度可定制的线程模型,让 Netty 的应用更加灵活。作为一个被广泛使用的 Java 网络编程框架,Netty 在互联网领域、大数据分布式计算领域、游戏行业、物联网行业等都得到了广泛的应用。很多流行的大数据框架的核心通信模块也都使用的是 Netty,如 Elasticsea..原创 2022-05-21 13:28:09 · 790 阅读 · 0 评论 -
Java全套面试题及答案整理(2022版)
不论是技术经理还是架构师,没有绝对地说哪条路是对还是错,适合自己才是最重要。小公司的可能没有架构师这个概念,大公司的架构师职位又不是那么容易拿下。但不管怎样,不断去学习新的技术,提升自己的层次是很有必要的,无论你在哪一家公司,过硬的技术水平才能吃得开。原创 2022-05-28 21:01:27 · 1873 阅读 · 0 评论 -
莫慌~ 阿里人用五个模块讲明白了SpringCloud,可下载
Spring Cloud“微服务”应该是互联网圈内争论很久的一个话题,开发者对此的讨论也一直在继续,近些年,SpringCloud有碾压Dubbo的趋势,你怎么看呢?SpringCloud在近些年来受到国内不少开发人员的广泛关注,也是比较吃香的一个技术技能,如果一个程序员连SpringCloud都没有怎么了解过或者使用过,那么可能会有面临被时代淘汰的危机!SpringCloud是知名的微服务架构,包含了很多组件,每个组件又有各自的分工。那么你对SpringCloud了解有多少呢,知之甚少还是运用原创 2022-05-12 16:36:16 · 113 阅读 · 0 评论 -
20个提高生产力的 Linux 命令与技巧,用完带你起飞
简介:这里有一些很有用的Linux命令,终端技巧和快捷方式,可以在使用Linux命令行时节省大量时间。在本文中,我将向您演示一些专业的Linux命令技巧,这些技巧将使您节省大量时间,在某些情况下还可以避免很多麻烦,而且它也将帮助您提高工作效率。并不是说这些只是针对初学者的Linux技巧。即使有经验的Linux用户也有可能没有发现这些,尽管你这些年来一直在使用Linux。很酷的Linux终端技巧,帮助您节省时间和提高生产力您很可能已经知道这些Linux命令中的一些或全部。无论哪种情况,都欢迎您原创 2022-01-08 14:59:35 · 175 阅读 · 0 评论 -
如何让日志记录变得丝滑
操作日志在每一个系统中都普遍存在,系统中都有一套自己记录日志的API与之想配套。而对于不同的系统日志又不近相同。大体可以分为两类: 系统日志 主要用于开发者问题排查和一些信息打印方便调试和问题排查的日志。打印在日志文件中 业务日志 有一定的业务规则,给业务人员进行查看的日志。这一类日志要求简单易懂(可能还设计一些日志的模板,不同类型的业务需要不同的模板)。打印在日志文件同时也需要进行数据库的持久化以便运营人员和关联人员的查看等等。 不管是系统日志还是业务日志,主要的作用就是用来记原创 2021-12-20 21:39:56 · 597 阅读 · 0 评论 -
MySQL事务相关概念
什么是事务事务是一组数据库操作序列,是一个不可分割的单位。这些操作要么全做,要么不做。事务的ACID特性原子性(Atomicity)事务必须作为一个完整的、不可分割的单位被执行。事务中所做的这些操作,要么全做,要么不做。一致性(Consistency)事务操作前后数据库应该由一个一致的状态转变为另一个一致的状态。一致状态的含义是数据库中的数据数据应满足完整性约束。隔离性(Isolation)多个事务并发执行时,一个事务的执行不能影响其他事务的执行。持久性(Durabili原创 2021-12-18 21:45:16 · 1010 阅读 · 0 评论 -
2021 年最新基于 Spring Cloud 的微服务架构分析
Spring Cloud 是一个相对比较新的微服务框架,2016 年才推出 1.0 的 release 版本. 虽然 Spring Cloud 时间最短, 但是相比 Dubbo 等 RPC 框架, Spring Cloud 提供的全套的分布式系统解决方案。Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键.原创 2021-12-18 21:35:42 · 3138 阅读 · 0 评论 -
Java常用设计模式-策略模式
策略模式是一个非常实用的设计模式,指定义了一类算法并将其封装起来,并使得它们之间可以灵活地切换,并且不影响客户端。1,从一个例子开始我们常常会在网上买东西,很多购物平台都会有着各种各样的优惠策略供你选择例如满减优惠、返现优惠等等。假设现在要开发一个商城系统,并要开发优惠策略,需要实现不使用优惠、满减优惠和返现优惠三个策略。这一步很简单,我们将优惠进行抽象,创建一个优惠接口Promotion如下:package fun.swsk33site.strategy.promotion;im原创 2021-12-18 21:24:06 · 584 阅读 · 0 评论 -
Java常用类,这一次帮你总结好
常用类常用类概述: 内部类 Object类 包装类 数学类 时间类 字符串 String Builder和StringBuffer DecimalFormat 一、内部类概念:在一个类内部再定义一个完整的类。一般情况下类与类之间是相互独立的,内部类的意思就是打破这种独立思想,让一个类成为另一个类的内部信息,和成员变量、成员方法同等级别。内部类的好处:把一个类写在外面和写在里面最终达到的结果都一样,那我们为什么原创 2021-12-12 14:01:35 · 290 阅读 · 1 评论 -
Kubernetes实战指南:零宕机无缝迁移Spring Cloud至k8s
1. 项目迁移背景1.1 为什么要在“太岁”上动土?目前公司的测试环境、UAT环境、生产环境均已经使用k8s进行维护管理,大部分项目均已完成容器化,并且已经在线上平稳运行许久。在我们将大大小小的项目完成容器化以后,测试、UAT、生产环境的发版工具以及CICD流程慢慢的实现统一化管理,并且基于k8s开发了内部的发版审核平台,同时接入了Jira等项目管理工具。在自研平台进行发版时,能够自动关联项目的开发进度以及Release版本,最重要的是其可以控制发版权限、统一发版工具及发版模式,并且支持一键式发原创 2021-12-10 20:29:29 · 1910 阅读 · 1 评论 -
从生产环境遇到的问题聊聊TCP设计思路
我们在学校学习网络以及网络传输层的时候,大概总是会觉得枯燥难懂。 但是其实在生产活动中,这个是很常遇见的问题,如果不懂,大概就会比较懵逼。生产环境遇到的问题说说今年我遇到的TCP层的几个问题。问题1:长短连接的选择? 问题2: 连接超时了,为什么超时的时间是128s左右 问题3:系统不可达,80端口连不通了,可是本地查看80端口是正常的,这是为什么? 问题4: 客户端连接池很多处于CLOSE-WAIT?传输层要完全说清楚那些问题,需要对传输层的协议有非常深刻的认识。 网络层或许离软件原创 2021-12-10 14:49:29 · 1227 阅读 · 0 评论 -
Mybatis调试经常需要输出SQL语句,但你知道是怎么输出的嘛?
Java 开发中常用的几款日志框架有很多种,并且这些日志框架来源于不同的开源组织,给用户暴露的接口也有很多不同之处,所以很多开源框架会自己定义一套统一的日志接口,兼容上述第三方日志框架,供上层使用。一般实现的方式是使用适配器模式,将各个第三方日志框架接口转换为框架内部自定义的日志接口。MyBatis 也提供了类似的实现,这里我们就来简单了解一下。适配器模式是什么?简单来说,适配器模式主要解决的是由于接口不能兼容而导致类无法使用的问题,这在处理遗留代码以及集成第三方框架的时候用得比较多。其核心原理原创 2021-12-08 16:04:02 · 155 阅读 · 0 评论 -
现代API渗透技术,我服了
在由机械工业出版社发行的《API安全技术与实战》一书中如果时间充分的话关于API渗透测试的内容个人觉得还可以更丰满一些。近期,在国外网站看到一篇不错的文章,转译过来供大家学习参考。在过去的一些年里API 不像现在那么普遍,这是由于单页应用程序 (SPA) 流行的结果。10 年前,Web 应用程序倾向于遵循单一模式,即大多数应用程序在呈现给用户之前在服务器端生成。任何需要的数据都将由系统生成 UI 的同一台服务器直接从数据库中收集。它的形式看起来像这样:图:10年前的Web应用模型现代 W原创 2021-12-08 15:54:04 · 441 阅读 · 0 评论 -
性能优化还不会?吃掉这五个类别,摆平性能优化~
在针对实际的性能问题的时候,用什么样的解决方案才可以提升性能呢?这就需要你了解具体的优化策略了。现实中的性能问题和具体领域千差万别,我也不可能面面俱到。但是为了帮助你理解,我总结了十大常用的优化策略。我将这十大策略分成五个类别,每个类别对应两个相关策略,帮助你掌握。这五个类别是:时空相互转换、并行 / 异步操作、预先 / 延后处理、缓存 / 批量合并、算法设计和数据结构。我们现在一个个来讲。一、时空转换第一个策略类别是“时空转换”。我们看科幻电影和小说的时候,经常会看到时空转换这个题原创 2021-12-07 19:13:27 · 249 阅读 · 0 评论 -
网络协议之:还在用HTTP代理?弱爆了, 快试试SOCKS5
简介存在即是合理,SOCKS5的出现是为了解决SOCKS4中不支持身份认证的大问题而出现的,毕竟大家对网络中的安全越来越重视了。没有认证的网络就好像是生活在摄像头下的人生,毫无隐私可言,实在是太可怕了。今天给大家深入讲解一下SOCKS5和它的应用。为什么要使用SOCKSSOCKS是一种代理服务协议,为什么会要有代理服务协议呢?因为在现代网络中,很多情况下,由于网络或者防火墙的原因,我们很难直接去访问对方的网络,所以需要一种代理机制来充当本地网络和大型网络之间的网关。代理服务器通过拦截原创 2021-12-03 20:36:08 · 407 阅读 · 0 评论 -
用短片“小说”通俗讲解:缓存、缓存算法和缓存框架简介
引言我们都听过 cache,当你问他们是什么是缓存的时候,他们会给你一个完美的答案,可是他们不知道缓存是怎么构建的,或者没有告诉你应该采用什么标准去选择缓存框架。在这篇文章,我们会去讨论缓存,缓存算法,缓存框架以及哪个缓存框架会更好。面试“缓存就是存贮数据(使用频繁的数据)的临时地方,因为取原始数据的代价太大了,所以我可以取得快一些。”这就是 programmer one (programmer one 是一个面试者)在面试中的回答(一个月前,他向公司提交了简历,想要应聘要求在缓存,...原创 2021-11-30 21:57:39 · 192 阅读 · 0 评论 -
Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理?
大家都知道,AOP 底层是动态代理,而 Java 中的动态代理有两种实现方式:基于 JDK 的动态代理 基于 Cglib 的动态代理这两者最大的区别在于基于 JDK 的动态代理需要被代理的对象有接口,而基于 Cglib 的动态代理并不需要被代理对象有接口。那么小伙伴们不禁要问,Spring 中的 AOP 是怎么实现的?是基于 JDK 的动态代理还是基于 Cglib 的动态代理?1. Spring先来说结论,Spring 中的动态代理,具体用哪种,分情况:如果代理对象有接口,就用 JD原创 2021-11-29 15:50:11 · 210 阅读 · 0 评论 -
Git 分支操作一些问题应对之法
一、分支代码错误提交到Master分支问题:我需要提交到一个新分支,但错误的提交到了Master。解决方案在master下创建一个新分支,不切换到新分支,master:(master)$ git branch my-branch复制代码把main分支重置到前一个提交:(master)$ git reset --hard HEAD^复制代码HEAD^ 是 HEAD^1 的简写,你可以通过指定要设置的HEAD来进一步重置。或者, 如果你不想使用 HEAD^, 找到你想重置到的原创 2021-11-29 15:09:43 · 267 阅读 · 0 评论 -
看到一个魔改线程池,面试素材直接加一
今天给大家分享一个经过扩展后的线程池,且我觉得扩展的思路非常好的。放心,我标题党来着,我觉得面试不会有人考这个玩意,但是工作中是有可能真的会遇到相应的场景。为了引出这个线程池,我先给大家搞个场景,方便理解。就拿下面这个表情包来做例子吧。假设我们有两个程序员,就叫富贵和旺财吧。上面这个表情包就是这两个程序员一天的工作写照,用程序来表示是这样的。首先我们搞一个对象,表示程序员当时正在做的事儿:publicclassCoderDoSomeThing{priv...原创 2021-11-29 15:04:08 · 269 阅读 · 0 评论 -
[redis] 数据结构及其应用
prefix分布式锁 延时队列(不如用kafka) 位图(bitset减少资源占用) hyperLogLog(大批量数据不绝对精确的低资源占用统计)需要后续学习的内容hyperLogLog实现原理 延时队列 funnel(漏斗限流)应用1 - 分布式锁本质:在redis中留个标记,其他线程后续进入的时候放弃或重试。方案 - setnxsetnx 指令使用setnx(set if not exists)进行占用。使用完了使用del删除。> setnx lock:原创 2021-11-28 22:00:06 · 512 阅读 · 0 评论 -
MySQL ACID与MVCC浅谈
MySQL ACID与MVCC浅谈前言我们都知道在做事务的概念,就是一个完整的操作动作要么都执行,要么都不执行,这是一个不可分割的工作单位,ACID又是事务的四大特征。那么ACID具体是什么呢?ACID介绍原子性(atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中即使包含几个步骤,但所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。一致性(consistency)一致性是指事务必须使数据库..原创 2021-11-28 21:40:17 · 530 阅读 · 0 评论 -
Java代理模式之Java策略模式
Java策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只原创 2021-11-28 13:05:14 · 126 阅读 · 0 评论 -
Java内存模型(Java Memory Model,JMM)
多线程、高并发问题相信是每一位从事Java研发工作的程序员都不可回避的一个重要话题。从启动一个线程,到使用volatile、synchronized、final关键字,到使用wait()、notify()、notifyAll()、join()方法,再到编写复杂的多线程程序,不知道大家有没有思考过这样一个问题,为什么要使用这些API,或者说这些API到底给编程人员提供了什么样的保证,才使得在多线程环境下程序的运行结果能够符合预期。它就是Java Memory Model(后续简称JMM)。本文就带领大家一起,原创 2021-11-27 22:03:54 · 567 阅读 · 0 评论 -
什么?你还不了解加密的艺术
加密算法最早诞生在什么时候?计算机出现之后吗?不,早在公元前 7 世纪,古希腊人就已经在使用加密算法了。他们使用一根叫 scytale 的棍子来传递加密信息,加密时先绕棍子卷一张纸条,把信息沿棒水平方向写,写一个字旋转一下,直到写完。解下来后,纸条上的文字消息杂乱无章,这就是密文。将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。如果不知道棍子的粗细,就无法解密里面的内容。加密方式发展到今天,相比 scytale 的简单原理已经有了无法想象的巨大发展,我们现在基于更复杂的数学过程,即更为复杂的算原创 2021-11-27 21:58:51 · 275 阅读 · 0 评论 -
终于明白:有了线程,为什么还要有协程?
并发的发展历史其实,在早期计算机并没有包含操作系统,这个时候,这个计算机只跑一个程序,这个程序独享计算机的所有资源,这个时候不存在什么并发问题,但是对计算机的资源来说,确实是一种浪费。早期编程都是基于单进程来进行,随着计算机技术的发展,于是,操作系统出现了,操作系统改变了这种现状,让计算机可以运行多个程序,并且不同的程序占用独立的计算机资源,如内存,CPU等。操作系统出现后:资源利用率:可以在其他程序执行过程出现等待的时候,去执行其他程序,从而提高程序的利用率 公平性:所有的程序可以共享计算机原创 2021-11-27 16:37:58 · 14637 阅读 · 25 评论 -
阿里神器 一招定位 线 上Bug~
背景公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。最近在优化接口的响应时间,优化了代码之后,但是时间还是达不到要求;有一个诡异的100ms左右的耗时问题,在接口中打印了请求处理时间后,和调用方的响应时间还有差了100ms左右。比如程序里记录150ms,但是调用方等待时间却为250ms左右。下面记录下当时详细的定位&解决流程(其实解决很简单,关键在于怎么定位并找到解决问题的方法)定位过程分析代码渠道系统是一原创 2021-11-27 16:34:48 · 144 阅读 · 0 评论 -
关联规则挖掘Apriori算法的实现
实验名称关联规则挖掘Apriori算法的实现实验目的1.掌握频繁项目集的生成原理2.掌握关联规则挖掘的原理3.掌握在weka中进行关联规则挖掘的具体流程。实验内容1.根据给定的事务数据库,支持数阈值2和置信度阈值0.7,编写代码生成频繁项目集及对应的关联规则。2.利用weka工具对天气数据、美国国会议员投票信息、超市购物篮数据进行关联规则挖掘,并分析挖掘结果实验步骤及结果一.根据给定的事务数据库,支持数阈值2和置信度阈值0.7,编写代码生成频繁项目集及对应的关联规则。原创 2021-11-26 20:24:24 · 3501 阅读 · 0 评论 -
Java static关键字你了解多少?
文章目录static关键字1.static修饰成员变量在引入static关键字之前呢,我们先看这样一个示例:1)设计一个Peple类如下:public class People { //实例变量 private String name; private int age; private int count;//用来统计对象的生成个数 //构造方法 public People(String name, int age) {原创 2021-11-26 14:54:03 · 97 阅读 · 0 评论 -
读者诉苦:Redis 宕机,数据丢了,老板要辞退我
大家好,这里是SharingOfficer~最近跟一位读者聊天,小哥非常郁闷,公司的Redis宕机了,线上业务受到了影响,老板非常愤怒,小哥担心会不会被辞退!我也很好奇,问小哥Redis主节点挂了,还有备机啊。怎么会影响到业务呢?小哥说,他们的系统架构只部署一个Redis单实例。节点挂了,数据也丢了。好吧,既然提到了备份,那今天,我们就来聊下 Redis的主从同步首先,什么是主从?主从也称主从集群,部署了多个Redis实例,如下图所示:其中,每个实例又有自己的原创 2021-11-26 14:39:14 · 95 阅读 · 0 评论 -
云原生Spring Boot应用配置Prometheus+Grafana监控(保姆级)
最近想要配置Spring Boot应用Prometheus+Grafana监控的demo,发现网上的很多中英文资料,内容过时或者配置不对。因此写一个文章来说明整个体系是怎么工作的。Demo的源码地址: https://github.com/hengyunabc/spring-boot-prometheus-grafana-demo spring boot应用metrics配置首先,我们直接到官网创建一个spring boot demo应用: https://start.sprin原创 2021-11-26 14:23:04 · 1079 阅读 · 0 评论 -
历史上最伟大的一次 Git 代码提交
Git 是一个分布式版本控制系统,缔造者是大名鼎鼎的林纳斯·托瓦茲 (Linus Torvalds),Git 最初的目的是为了能更好的管理 Linux 内核源码。PS:为了能够帮助更多的 Java 爱好者,已将《Java 程序员进阶之路》开源到了 GitHub(本篇已收录)。该专栏目前已经收获了 715 枚星标,如果你也喜欢这个专栏,觉得有帮助的话,可以去点个 star,这样也方便以后进行更系统化的学习:github.com/itwanger/to…每天看着 star 数的上涨我心里非常的开原创 2021-11-26 14:05:19 · 141 阅读 · 0 评论 -
取代 Postman + Swagger 这款神器功能更强大,界面更炫酷
作为一位后端开发,我们平时经常需要维护API文档、对API接口进行调试、有时候还得Mock数据。Postman虽然作为接口调试工具非常好用,但是对于维护API文档这类工作却不太合适。今天给大家推荐一款功能更强大的工具Apifox,足以满足我们对API的各种需求,希望对大家有所帮助!Apifox简介Apifox 的定位是Postman + Swagger + Mock + JMeter,具有API文档管理、API调试、API Mock、API 自动化测试等功能。可以通过一种工具解决之前使用多种工具.原创 2021-11-26 13:42:53 · 155 阅读 · 0 评论 -
Lombok你也许不知道的 @Builder 坑坑 ~
Lombok,使我们提供我们生产效率的一个强大的利器,其通过简单的注解来实现精简代码,消除冗长代码和提高开发效率的目的。我很喜欢使用的一个注解是@Builder,这个注解能让我很轻松的使用构造器模式,这篇文章记录如何在子类中使用@Builder避免一个常见的坑坑。一、问题对于下面这两个类,一个父类,一个子类。两个类都想使用@Builder注解,用于使用构造器模式去构造一个对象。@Getter@ToStringpublic class Parent { private long.原创 2021-11-25 21:54:44 · 1277 阅读 · 0 评论 -
设计模式这话题,我面试又被问了
面试官:我看你的简历写着熟悉常见的设计模式,要不你来简单聊聊你熟悉哪几个吧?候选者:常见的工厂模式、代理模式、模板方法模式、责任链模式、单例模式、包装设计模式、策略模式等都是有所了解的候选者:项目手写代码用得比较多的,一般就模板方法模式、责任链模式、策略模式、单例模式吧候选者:像工厂模式、代理模式这种,手写倒是不多,但毕竟Java后端一般环境下都用Spring嘛,所以还是比较熟悉的。面试官:要不你来手写下单例模式呗?候选者:单例模式一般会有好几种写法候选者:饿汉式、简单懒汉式(在方法原创 2021-11-25 13:38:14 · 92 阅读 · 0 评论