Java——Optional类的使用
Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检> 测。Optional 类的引入很好的解决空指针异常。
用例中的Person类
12345678public class Person { private String name; private int age; private String password; private List<String> hobbies; // getter and setter}
创建Optional对象使用empty()方法创建空的Optional对象12345@Testpublic void whenCreatesEmptyOptional_thenCorrect() { Optional<String> empty = ...
Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose
在这篇文章中,我们将会明白 Docker 是什么,如何 在 Ubuntu 中安装 Docker 引擎 。此外,我们也将会明白如何 安装 Docker Compose ,它是一个定义并运行多容器的 Docker 应用。
我们已经在 Ubuntu 22.04 LTS 中正式的测试了这份指南。然而,它也应该对旧版本如 20.04 LTS 和 18.04 LTS 有效。为了更好的安全性和稳定性,我推荐你使用最新的版本 —— Ubuntu 22.04 LTS 。
什么是 Docker ?
Docker 是一个快捷、轻便的系统级虚拟化技术,开发者和系统管理员可以使用它构建具备所有必要依赖项的应用程序,并将其作为一个包发布。
Docker 与其他如 VMWare 、Xen 、以及 VirtualBox 等工具的虚拟化方式不同,每个虚拟机不需要单独的客户操作系统。
所有的 Docker 容器有效地共享同一个主机系统内核。每个容器都在同一个操作系统中的隔离用户空间中运行。
Docker 容器可以在任何 Linux 版本上运行。比如说你使用 Fedora ,我用 Ubuntu 。我们能相互开发、共享并分发 ...
设计模式——建造者模式(Builder pattern)
概述
The intent of the Builder design pattern is to separate the construction of a complex object from its representation. By doing so the same construction process can create different representations.
将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示
使用场景
当一个类的构造参数个数超过了4个,而且这些参数有些是可选的参数,考虑使用构造者模式;
当创建复杂对象的算法应该独立与该对象的组成部分以及它们的装配方式时;
当构造过程中允许被构造的对象有不同的表示时。
Builder设计模式中涉及到的参与者
Builder
为创建一个Product对象的各个部件指定抽象接口。
ConcreteBuilder
实现Builder的接口以构造和装配该产品的个部件。
定义并明确它所创建的表示,即针对不同的商业逻辑,具体化复杂对象的各部分的创建
提供一个检索产品的接口。
构 ...
Hexo 个人博客初始化
准备工作安装软件
node : https://nodejs.org/
git : https://git-scm.com/
hexo : https://hexo.io/zh-cn/
hexo初始化1234## 本地创建一个目录用于存放博客hexo inithexo generatehexo server
初始化完成后访问 localhost:4000.
Hexo基础修改网站基础配置信息修改网站各种资料,例如标题、副标题和邮箱等个人资料,请修改博客根目录的站点配置文件 _config.yml
12345678# Sitetitle: Lianglliu's Blogsubtitle: ''description: ''keywords: 程序员,博客,教程,工具,框架author: Lianglliulanguage: zh-CNtimezone: 'Asia/Shanghai'
导航页面
安装butterfly主题后,修改主题配置文件 _config.butterfly.yml
12345678men ...