自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 写出好代码,一直是少部分程序员的追求

写出好代码,一直是少部分程序员的追求。大部分程序员都只追求“能跑就行”,或者“代码和人有一个能跑就行”。追求代码质量终究是一条少有人走的路。1. 什么是好代码可读性可测试性可拓展性2. 如何写出好代码:内功心法和神兵利器内功心法:设计思想设计原则设计模式神兵利器:单元测试集成测试代码重构好用的工具3. 设计原则SRP 单一职责原则:类/方法只干一件事OCP开闭原则:对拓展开放/对修改开闭LSP里氏替代原则:确保派生类型从行为的角度来看是可替代的;使用父.

2022-04-25 20:12:13 605

原创 JUnit5教程(4): JUnit5假设、测试套件和条件测试

你好啊,我是大阳。这是专栏《SpringBoot自动化单元测试教程》的第四篇文章。本文我们将讨论JUnit5的假设、测试套件和条件测试。

2022-03-31 21:33:51 981

原创 JUnit5教程(3):_JUnit5断言

你好啊,我是大阳。本文我们将讨论JUnit5的断言功能。JUnit 5 断言是使用测试的实际结果验证预期结果。所有JUnit Jupiter 断言都是org.junit.jupiter.Assertions类中的静态方法,方便使用。有异常的断言将抛出一个AssertionFailedError或它的一个子类。1 assertEquals() 和 assertNotEquals()Assertions.assertEquals()用于断言期望值和实际值相等。Assertions.assertEqua

2022-03-30 22:09:44 2252

原创 JUnit5教程(2)_JUnit5测试生命周期及与JUnit4注解的不同

你好啊,我是大阳。本文我们讨论JUnit5测试生命周期,以及JUnit5与JUnit4的不同之处。1. 测试阶段的生命周期通常,一个测试类包含多个测试方法。JUnit 以生命周期的形式管理每个测试方法的执行。在注解的帮助下,测试用例的完整生命周期可以分为三个阶段:设置:此阶段将测试基础设施配置到位。JUnit 提供类级别设置和方法级别设置。通常,像数据库连接这样的重对象是在类级别设置中创建的,而像测试对象这样的轻量对象是在方法级别设置的。测试执行:在这个阶段,主要是测试执行和断言。执行结果将使

2022-03-29 22:53:47 481

原创 JUnit5教程(1):JUnit5架构和第一个测试示例

你好啊,我是大阳。有小伙伴编程但不进行单元测试的吗?答应我,看完这个专栏《JUnit5教程》,提高编码调试效率,跟bug说拜拜。1. JUnit5架构JUnit 5 是 Java 应用程序使用最广泛的测试框架。很长一段时间以来,JUnit 一直在完美地完成它的工作。与以前的 JUnit 版本不同,JUnit 5 由三个不同子项目的几个不同模块组成。JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit VintageJUnit Platform是在

2022-03-28 21:59:38 943

原创 尝鲜,阿里前端低代码引擎LowCodeEngine已开源

你好啊,我是大阳。今天看到阿里巴巴前端官网公众号Alibaba F2E的推文阿里低代码引擎 LowCodeEngine 正式开源! (qq.com),就立即深入熟悉了一下使用方法。(公众号阅读原文可以下载《低代码引擎技术白皮书》)。快来和我一起尝鲜吧!官网地址:https://lowcode-engine.cn/ github:https://github.com/alibaba/lowcode-engine快速开始clone 低代码项目的官方 demo,直接启动项目git clone h

2022-03-24 21:11:10 4701 2

原创 相见恨晚:一个Java全栈知识学习网站

给你推荐一个Java全栈知识学习网站:https://pdai.tech/这个网站的内容包含: Java 基础, Java 部分源码, JVM, Spring, Spring Boot, Spring Cloud, 数据库原理, MySQL, ElasticSearch, MongoDB, Docker, k8s, CI&CD, Linux, DevOps, 分布式, 中间件, 开发工具, Git, IDE, 源码阅读,读书笔记, 开源项目...适合人群:面试官:系统性的理解不仅能帮助

2022-03-23 22:50:06 8342

原创 Java16新特性及代码示例

你好啊,我是大阳。Java 16 于 2021 年 3 月 16 日发布。在这篇文章中,我们将介绍添加的一些特性以及一些代码示例。Java16的主要更新内容如下:时段支持添加Stream.toList方法instanceof的模式匹配密封类(第二次预览版)record纪录类(标准版)1. 时段支持DateTimeFormatter的新增功能,可以表示一天中的时段,例如“上午”、“下午”package cn.dayangshuo.collectors;import java.tim

2022-03-22 08:50:22 594

原创 Java15新特性及代码示例

你好啊,我是大阳。Java 15 于 2020 年 9 月 15 日发布。Java 15 继续支持以前 JDK 版本中的各种预览功能;并且还引入了一些新功能。在这篇文章中,我们将介绍 添加的一些特性以及一些代码示例。Java15的主要更新内容如下:密封类和接口(预览版)EdDSA 算法隐藏类其他1. 密封类和接口(预览版)在Java15之前,所有的类都可以没有限制地继承其他类--除非被继承类被声明为final类型,任何类都可以实现公共接口。现在在Java15中,一个类或者接口可以使用修

2022-03-21 12:34:20 586

原创 Java13新特性及代码示例

你好啊,我是大阳。Java 13 于 2019 年 9 月 17 日发布。在这篇文章中,我们将介绍添加的一些特性以及一些代码示例。Java13的主要更新内容如下:switch表达式改进文本块改进动态CDS档案ZGC:取消提交未使用的内存重新实现 Legacy Socket API其他1. switch表达式改进使用yield,我们现在可以有效地从 switch 表达式返回值,并能够更容易实现策略模式。package cn.dayangshuo.collectors;/** *

2022-03-20 11:12:53 1458

原创 Java14新特性及代码示例

你好啊,我是大阳。Java 14 于 2020 年 3 月 17 日发布。在这篇文章中,我们将介绍 Java编程语言中添加的一些特性以及一些代码示例。Java14的主要更新内容如下:instanceof 的模式匹配(预览版)文本块 (第二次预览)NullPointerExceptions:精确描述哪个变量是nullrecord记录类(预览)switch表达式(标准)1. instanceof 的模式匹配(预览版)在 Java 14 中,instanceof运算符已被修改为具有类型的表达

2022-03-19 15:39:22 580

原创 Java12新特性及代码示例

Java 12(2019 年 3 月 19 日发布)是可用于 JDK 的最新版本。让我们看看它为开发人员和架构师带来的新功能和改进。1. Stream API 中的 Collectors.teeing()teeing 收集器已公开为静态方法Collectors::teeing。该收集器将其输入转发给其他两个收集器,然后将它们的结果使用函数合并。teeing(Collector, Collector, BiFunction)接受两个收集器和一个合并其结果的函数。传递给结果收集器的每个元素都由两个下游收.

2022-03-19 12:00:36 690

原创 Java17新特性及代码示例:还在使用Java8? 这5个Java17新功能,你会喜欢的

SpringBoot3.0最低支持JDK17,各开源软件正在全面拥抱JDK17.在2022年Java开发人员生产力报告中,有升级计划的调查受访者中,37%的人计划在未来六个月内升级到2021年9月份发布的LTS版本JDK 17。另有25%的人计划在未来6到12个月内升级到JDK 17。这5个你喜欢的JDK17新功能,会让你升级JDK17吗?1. record 类 (记录类)传统的Java应用程序通过创建一个类,通过该类的构造方法实例化类,并通过getter和setter方法访问成员变量或者设置成员变

2022-03-18 21:51:13 900

原创 为什么 Nacos 会在单个集群中同时运行 CP 协议以及 AP 协议呢?

CAP理论CAP即:Consistency(一致性)Availability(可用性)Partition tolerance(分区容忍性)这三个性质对应了分布式系统的三个指标:而CAP理论说的就是:一个分布式系统,不可能同时做到这三点。如下图:为什么 Nacos 会在单个集群中同时运行 CP 协议以及 AP 协议呢?这其实要从 Nacos 的场景出发的:Nacos 是⼀个集服务注册发现以及配置管理于⼀体的组件,因此对于集群下,各个节点之间的数据⼀致性保障问题,需要拆分成两个方面:从

2022-03-15 21:26:49 720 1

原创 Java11新特性及代码示例

你好啊,我是大阳,本文给你介绍Java11的新特性,并提供一些代码示例。本文主要内容HTTP客户端API无需编译即可启动单文件程序字符串API更新Collection.toArrayFiles.readString() 和 Files.writeString()Optional.isEmpty()Java 11(2018 年 9 月发布)包含许多重要且有用的更新。让我们看看它为开发人员和架构师带来的新功能和改进。1. HTTP客户端APIJava 使用HttpURLConnecti.

2022-03-13 17:59:52 731

原创 Java10新特性及代码示例

你好啊,我是大阳,本文主要介绍Java10新特性,并提供一些代码示例。不过Java10的新特性大多数是开发者不关心的内容。Java 9发布后,Java 10 来得非常快。与之前的版本不同,Java 10 没有那么多令人兴奋的特性,但它仍然有一些重要的更新会改变你的编码方式,以及影响其他未来的 Java 版本。本文主要内容:var关键字:局部变量类型推断(它被称为是 JDK 10 中开发人员唯一真正关心的功能)基于时间的发布版本控制垃圾收集器接口G1 的并行全 GC 替代存储设备上的堆分配.

2022-03-13 16:50:09 512

原创 Java9新特性及代码示例

你好啊,我是大阳,今天给大家介绍一下Java9的新特性,并提供一些代码示例。Java 9带来了许多新的增强功能,这些增强功能将在很大程度上影响你的编程风格和习惯。最大的变化是Java的模块化。这是继Java 8中的Lambdas之后的另一个重大变化。在本文中,我将列出Java 9版本的一部分更新内容。本文主要内容:Java模块化接口私有方法HTTP/2客户端JShell – REPL 工具平台和JVM日志记录Process API更新Collection(集合) API更新Strea.

2022-03-13 16:06:16 845

原创 Java8新特性及代码示例

Java 8于2014年初发布。本文列出了重要的 Java 8 特性,并提供了 lambda 表达式、Java 流、函数式接口、接口默认方法和日期时间 API 更改等功能的代码示例。1. Lambda表达式使用Scala的同学已经很熟悉Lambda表达式了。在Java编程语言中,Lambda表达式只是一个匿名函数,就是没有名称并且没有任何修饰符的函数。1.1 lambda语法lambda 表达式的基本语法://如果 lambda 表达式的正文具有单个语句,则可以不要大括号//并且匿名函数的返回类

2022-03-13 14:35:56 300

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除