如何提高Java代码的质量!
作为一名程序员,我们的本职工作是写代码。今天,我们来学习下如何提高Java代码的质量1可读性1.1准确命名每种编程语言都有自己的命名规范,不同语言的风格差异有大有小,下面以Java为例:Java整体命名风格为UpperCamelCase或lowerCamelCase形式。不管是
JavaScript Web 框架的“新浪潮”
太过保守很难在Javascript生态系统中保持与时俱进。对于那些刚进入这个行业的人来说,要在新的库、框架、概念和有力的意见中关注正在发生的事情,很有挑战性。这是个很好的提醒,默认情况下,使用“无聊”的技术,你所熟悉的技术,并且成为晚期采用者,通常是个不错的选择。闲话少叙,本文将带读者了解Javas
Spring Boot 实现日志链路追踪,无需引入组件,让日志定位更方便!
来源:blog.csdn.net/qq_35387940/article/details/125062368前言从文章标题就知道,这篇文章是介绍些什么。这是我一位朋友的问题反馈:好像是的,确实这种现象是普遍存在的。有时候一个业务调用链场景,很长,调了各种各样的方法,看日志的时候,各个接口的日志穿插,
Java 日期处理易踩的十个坑
以下文章来源于公众号捡田螺的小男孩,作者捡田螺的小男孩前言整理了Java日期处理的十个坑,希望对大家有帮助。1.用Calendar设置时间的坑反例:Calendarc=Calendar.getInstance();c.set(Calendar.HOUR,10);System.out.println(
小公司里用SpringBoot做MySQL分库分表,踩了一些坑!
文章来源:https://juejin.cn/post/71182156822059417961、MySQL主从复制我们仔细观察我们会发现,当我们的项目都是用的单体数据库时,那么就可能会存在如下问题:读和写所有压力都由一台数据库承担,压力大数据库服务器磁盘损坏则数据丢失,单点故障为了解决上述提到的两
SpringBoot 设置动态定时任务,千万别再写死了~
之前写过文章记录怎么在SpringBoot项目中简单使用定时任务,不过由于要借助cron表达式且都提前定义好放在配置文件里,不能在项目运行中动态修改任务执行时间,实在不太灵活。经过网上搜索学习后,特此记录如何在SpringBoot项目中实现动态定时任务。因为只是一个demo,所以只引入了需要的依赖:
Java使用 try catch会影响性能?
一.JVM异常处理逻辑Java程序中显式抛出异常由athrow指令支持,除了通过throw主动抛出异常外,JVM规范中还规定了许多运行时异常会在检测到异常状况时自动抛出(效果等同athrow),例如除数为0时就会自动抛出异常,以及大名鼎鼎的NullPointerException。还需要注意的是,J
Java 反射慢?它到底慢在哪?
反射具体是怎么影响性能的?这引起了我的反思。是啊,在阐述某个观点时确实有必要说明原因,并且证明这个观点是对的,虽然反射影响性能人尽皆知,我曾经也真的研究过反射是否存在性能问题,但并没有在写文章的时候详细说明。这让我想到网上很多信息只会告诉你结论,并不会说明原因,导致很多学到的东西都是死记硬背,而不是
妙用Java 8中的 Function接口,消灭if...else(非常新颖的写法)
在开发过程中经常会使用if...else...进行判断抛出异常、分支处理等操作。这些if...else...充斥在代码中严重影响了代码代码的美观,这时我们可以利用Java8的Function接口来消灭if...else...。if(...){thrownewRuntimeException("出现异
SpringBoot + MDC 实现全链路调用日志跟踪
写在前面通过本文将了解到什么是MDC、MDC应用中存在的问题、如何解决存在的问题。MDC介绍简介MDC(MappedDiagnosticContext,映射调试上下文)是log4j、logback及log4j2提供的一种方便在多线程条件下记录日志的功能。MDC可以看成是一个与当前线程绑定的哈希表,可
Java枚举意外触发了Mybatis Plus的BUG
来源:juejin.cn/post/7173449167618965534问题昨天用mybatis-plus写了一段crud,代码如下:@Transactional@OverridepublicbooleanupdateTaskStatus(IntegertaskId,TaskStatusEnumt
Spring Boot三步就能完成日志脱敏,简直太哇塞了!
文章来源:https://blog.csdn.net/qq_40885085前言在我们写代码的时候,会书写许多日志代码,但是有些敏感数据是需要进行安全脱敏处理的。对于日志脱敏的方式有很多,常见的有:①使用conversionRule标签,继承MessageConverter②书写一个脱敏工具类,在打
Spring6的新特性,正式“抛弃”feign了
来源:juejin.cn/post/7173271507047546893多数网友在对接第三方系统时,还在使用httpclient、okhttp等方式进行硬编码的形式实现对接。其实,我认为使用feign来实现更为方便快捷。feign除了服务间的http调用外,还支持非服务间的http调用。只是,我们
Spring中常用的11个扩展点
前言我们一说到spring,可能个想到的是IOC(控制反转)和AOP(面向切面编程)。没错,它们是spring的基石,得益于它们的设计,使得spring能够从众多框架中脱颖而出。除此之外,我们在使用spring的过程中,有没有发现它的扩展能力非常强。由于这个优势的存在,让spring拥有强大的包容能
消灭空指针,这才是Java 8的优解?
前言在平时的业务开发中,空指针是我们经常遇到的问题,他可能会导致我们的流程无法正常进行或者一些意外情况的发生。这就是我们需要避免空指针的原因,那我们有哪些方式去解决这个问题呢?空指针场景包装类型字段,因为自动拆箱出现空指针;A对象包含B对象,通过A对象获取B对象字段时,没有判断就直接去调用B对象中的
Java 应用容器化指北
关于基础的底层镜像,通常大多数我们只有三种选择:Alpine、Debian、CentOS;这三者中对于运维熟悉的一般为CentOS,但是很不幸的是CentOS后续已经不存在稳定版,关于它的稳定性问题一直是个谜一样的问题;这是一个仁者见仁智者见智的问题,我个人习惯是能不用我不用😆。排除掉Cen
Java 应用压测性能问题定位经验分享
什么是压测CloudNative压测,即压力测试,是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和和可能存在的隐患。压测主要用于检测服务器的承受能力,包括用户承受能力,即多少用户同时使用系统时基本不影响质量、流量承受等。另外,通过诸如疲劳测试还能发现系统一些稳定性的
面试官问:Java 序列化和反序列化为什么要实现 Serializable 接口?什么鬼??
前言最近公司的在做服务化,需要把所有model包里的类都实现Serializable接口,同时还要显示指定serialVersionUID
工作10年,你居然还没用过Java中的池化技术?
目录公用池化包CommonsPool2简介案例面试题JMH测试数据库连接池HikariCP结果缓存池小结背景在我们平常的编码中,通常会将一些对象保存起来,这主要考虑的是对象的创建成本。比
别再乱打日志了,这份 Java 日志规范,应有尽有,建议收藏!!
1简介在程序中写日志是一件非常重要,但是很容易被开发人员忽视的地方。写好程序的日志可以帮助我们大大减轻后期维护压力。在实际的工作中,开发人员往往迫于巨大时间压力,而写日志又是一个非常繁琐的事情,往往没有引起足够的重视。开发人员应在一开始就养成良好的日志撰写习惯,并