深入研究微服务世界的 Java 开发人员经常发现自己面临着在两个著名框架之间做出选择:Micronaut 和 Spring Boot。 这两个框架都为构建微服务提供了强大的解决方案,但每个框架都有自己的优点和缺点。 在本文中,我们将探讨与 Spring Boot 相比使用 Micronaut 的一些潜在缺点,强调根据项目的特定需求调整您的选择的重要性。 生态系统的成熟度与规模 Spring...
阅读全文在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: - 使用+拼接 - 使用StringBuffer和SpringBuilder - String::format and String::formatted - 使用java.text.MessageFormat 下面,我们一起来学习一下Java...
阅读全文在Java中,组织字符串是平时最常见的操作,这里总结一下Java自带的四种处理方式。 1. 使用+拼接 案例: java String name = "DD"; String host = "blog.didispace.com"; String result = "hello " + name + ", your blog is " + host;...
阅读全文在Java 9中又新增了一些API来帮助便捷的创建不可变集合,以减少代码复杂度。 本期配套视频:Java 9 新特性:快速定义不可变集合https://www.bilibili.com/video/BV1HY411F744/ 常规写法 以往我们创建一些不可变集合的时候,通常是这样写的: java // 不可变的Set Set set = new HashSet<>; set.add"a";...
阅读全文什么是交互式编程环境?重点词交互,在这样的编程环境中,你每输入一行代码,环境都会给你一个反馈,这就是交互式的编程环境。这种编程环境并不太适合工程化的复杂性需求,但在一些快速验证、简单计算之类的场景下还是非常好用的。其实交互式编程环境在其他高级语言中很早就有了,而Java直到Java 9才正式推出了这样的工具。 下面就来一起学习下,这个Java中的交互式编程环境JShell。 JShell快速入门...
阅读全文以前我们定义类都是用class关键词,但从Java 16开始,我们将多一个关键词record,它也可以用来定义类。record关键词的引入,主要是为了提供一种更为简洁、紧凑的final类的定义方式。 下面就来具体了解record类的细节。 声明record类 声明record类的基础语法: java record rangeint start, int end{}...
阅读全文隐藏类,是一种不能被其他类直接使用的类。引入隐藏类的主要目的是给框架来使用,使得框架可以在运行时生成类,并通过反射间接使用它们。可能有点抽象,不要紧,下面我们通过一个例子来直观的认识它! 隐藏类案例 第一步:先创建一个普通的Java类 java public class JEP371HiddenClasses { public static String hello { return...
阅读全文面对这样的if语句,你是不是很难受呢? java if flag == 1 { log.info"didispace.com: 1"; } else if flag == 2 { log.info"didispace.com: 2"; } else if flag == 3 { log.info"didispace.com: 3"; } else if flag == 4 {...
阅读全文还记得Java 16中的instanceof增强http://www.didispace.com/java-features/java16/jep394-pattern-matching-for-instanceof.html吗? 通过下面这个例子再回忆一下: java Map data = new HashMap<>; data.put"key1", "aaa";...
阅读全文Java 17推出的新特性Sealed Classes经历了2个Preview版本(JDK 15中的JEP 360、JDK 16中的JEP 397),最终定稿于JDK 17中的JEP 409。Sealed Classes有两种主流翻译:密封类、封闭类。个人喜欢前者多一些,所以在本文中都称为密封类。其实Sealed Classes的其他许多语言中并不是什么新鲜事物,C、Scala等高级语言中都有类似...
阅读全文