![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 91
苏三说技术
关注公众号【苏三说技术】,领取粉丝福利。免费刷题网站:www.susan.net.cn
展开
-
Objects.equals有坑
前言最近review别人代码的时候,发现有个同事,在某个业务场景下,使用Objects.equals方法判断两个值相等时,返回了跟预期不一致的结果,引起了我的兴趣。原本以为判断结果会返回true的,但实际上返回了false。记得很早之前,我使用Objects.equals方法也踩过类似的坑,所以有必要把这个问题记录下来,分享给大家。到底怎么回事呢?1. 案发现场假设现在有这样一个需求:判断当前登录的用户,如果是我们指定的系统管理员,则发送一封邮件。系统管理员没有特殊的字段标识,他的用户id=88原创 2022-03-21 22:15:04 · 3216 阅读 · 3 评论 -
@Value竟然能玩出这么多花样,涨知识了
前言对于从事java开发工作的小伙伴来说,spring框架肯定再熟悉不过了。spring给开发者提供了非常丰富的api,满足我们日常的工作需求。如果想要创建bean实例,可以使用@Controller、@Service、@Repository、@Component等注解。如果想要依赖注入某个对象,可以使用@Autowired和@Resource注解。如果想要开启事务,可以使用@Transactional注解。如果想要动态读取配置文件中的某个系统属性,可以使用@Value注解。等等,还有很多。。。原创 2021-10-11 21:55:56 · 3415 阅读 · 7 评论 -
微信一面,过了
前言最近经常有小伙伴,问我面试相关的问题。尤其是近期正在找工作的小伙伴,希望我能够分享一些大厂的面试题,让他们面试前有个参考,不打无准备之仗。今天有个好消息是,我整理了一份微信、VIVO和货拉拉的真实面试题,其中涉及的知识点很有代表性,非常有参考价值。想进大厂的小伙伴,赶紧看过来,这是一份开卷考试,你准备好了吗?一. 微信支付1面http1.0、http2.0、http3.0的区别?http是如何采用UDP的?http3.0为什么采用UDP?TCP怎么保证可靠性的 (TCP拥塞控制讲一讲)T原创 2021-08-13 22:07:09 · 882 阅读 · 1 评论 -
面试必考:秒杀系统的9个核心知识点,一次性打包给你
苏三说技术 作者就职于知名互联网公司,掘金月度优秀作者,从事开发、架构和部分管理工作。实战经验丰富,对jdk、spring、springboot、springcloud、mybatis等开源框架源码有一定研究,欢迎关注...原创 2021-07-29 19:23:48 · 11482 阅读 · 27 评论 -
这10个idea小技巧,让我的开发效率提升了10倍
前言对于如何提高开发效率,是每一个程序员都非常关心的问题,本文总结了开发工具idea中提升开发效率的10个小技巧。纯干货分享,个个都非常实用,希望小伙伴们会喜欢,记得给我打call喔。1.快速生成main方法并打印 用psvm命令能快速生成main方法。 用sout命令能快速生成打印方法System.out.println。 两个命令相结合的效果如下: 2.给new出来的对象快速赋值在new出来的对象后面加上.var,就能实现快速赋值,效果如下:3.快速for原创 2021-06-12 21:42:37 · 2584 阅读 · 8 评论 -
一个程序员的自白
大家好,今天给大家介绍一位原创作者:苏三说技术。苏三就职于某知名互联网公司,从事开发、架构和部分管理工作。对spring、springboot、springcloud、mybatis、rocketmq等开源框架源码有一定研究。他实战经验丰富,参与过多个核心系统的设计和开发,踩过很多坑,收获了许多宝贵的经验。对高并发、高性能、分布式、安全等方面,有自己的一些独特的见解。他写的文章都很硬核,在 CSDN、掘金、知乎、开源中国 和 开发者头条 等多个平台,阅读和点赞量都非常高,深受广大读者的喜爱。CSDN原创 2021-05-29 15:05:15 · 8661 阅读 · 43 评论 -
我们为什么要用mq?终于搞清楚了
前言最近mq越来越火,很多公司在用,很多人在用,其重要性不言而喻。但是如果我让你回答下面的这些问题:我们为什么要用mq?引入mq会多哪些问题?如何解决这些问题?你心中是否有答案了呢?本文将会一一为你解答,这些看似平常却很有意义的问题。1 传统模式有哪些痛点?1.1 痛点1有些复杂的业务系统,一次用户请求可能会同步调用N个系统的接口,需要等待所有的接口都返回了,才能真正的获取执行结果。这种同步接口调用的方式总耗时比较长,非常影响用户的体验,特别是在网络不稳定的情况下,极容易出现接口超时原创 2021-05-06 22:59:40 · 7506 阅读 · 8 评论 -
又臭又长的if...else太多了,不知道如何消除?
前言最近在做代码重构,发现了很多代码的烂味道。其他的不多说,今天主要说说那些又臭又长的if…else要如何重构。在介绍更更优雅的编程之前,让我们一起回顾一下,不好的if…else代码一、又臭又长的if…else废话不多说,先看看下面的代码。public interface IPay { void pay(); } @Servicepublic class AliaPay implements IPay { @Override public void原创 2021-05-04 21:56:02 · 932 阅读 · 3 评论 -
项目中用了spring这些牛逼的开发技巧,经理请我吃饭了
前言上一篇文章《spring中这些能升华代码的技巧,可能会让你爱不释手》发表之后,受到了不少读者的好评,很多读者都在期待续集。今天非常高兴的通知大家,你们要的续集来了。本文继续总结我认为spring中还不错的知识点,希望对您有所帮助。一. @Conditional的强大之处不知道你们有没有遇到过这些问题:某个功能需要根据项目中有没有某个jar判断是否开启该功能。某个bean的实例化需要先判断另一个bean有没有实例化,再判断是否实例化自己。某个功能是否开启,在配置文件中有个参数可以对它进行控制原创 2021-05-02 22:40:24 · 5807 阅读 · 31 评论 -
据说这些基础知识90%的人都回答错了,你呢?
前言最近我们通过sonar静态代码检测,同时配合人工代码review,发现了项目中很多代码问题。除了常规的bug和安全漏洞之外,还有几处方法用法错误,引起了我极大的兴趣。我为什么会对这几个方法这么感兴趣呢?因为它们极具迷惑性,可能会让我们傻傻分不清楚。1. replace会替换所有字符?很多时候我们在使用字符串时,想把字符串比如:ATYSDFA*Y中的字符A替换成字符B,第一个想到的可能是使用replace方法。如果想把所有的A都替换成B,很显然可以用replaceAll方法,因为非常直观,光从方原创 2021-04-30 18:58:22 · 3740 阅读 · 25 评论 -
spring中这些开发技巧真的太diao了
前言最近越来越多的读者认可我的文章,还是件挺让人高兴的事情。有些读者私信我说希望后面多分享spring方面的文章,这样能够在实际工作中派上用场。正好我对spring源码有过一定的研究,并结合我这几年实际的工作经验,把spring中我认为不错的知识点总结一下,希望对您有所帮助。一 如何获取spring容器对象1.实现BeanFactoryAware接口@Servicepublic class PersonService implements BeanFactoryAware { privat原创 2021-04-26 19:35:40 · 8172 阅读 · 59 评论