设计模式-单例模式的各种实现
单例模式是开发中使用频率极高的一个模式,比如Spring的bean默认就是单例的。
概念
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式有一下特点:
- 单例类只有一个实例。
- 单例类必须自己创建自己的唯一实例。
- 单例类必须给所有其他对象提供这一实例。
实现方式
一般意义上来讲单例模式有两种实现方式,懒汉模式和饿汉模式。
饿汉模式
1 | public class Singleton { |
单例模式是开发中使用频率极高的一个模式,比如Spring的bean默认就是单例的。
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式有一下特点:
一般意义上来讲单例模式有两种实现方式,懒汉模式和饿汉模式。
1 | public class Singleton { |
服务器部署Jenkins后,首次使用文件中的密码进入系统。
1 | ${home}/.jenkins/secrets/initialAdminPassword |
然后选择安装默认插件,成功后配置了一个admin账户test/test。完成后重启服务器后重新登录系统,发现无法登录了?尴了个尬!!!
求助伟大的google,找到了解决办法:
项目源代码在:Spring-H2测试
H2数据库是一种由Java编写的,极小,速度极快,可嵌入式的数据库。非常适合用在单元测试等数据不需要保存的场景下面。
以下时其官网的介绍:
Welcome to H2, the Java SQL database. The main features of H2 are:
Very fast, open source, JDBC API
Embedded and server modes; in-memory databases
Browser based Console application
Small footprint: around 1.5 MB jar file size
我们使用的maven工程来搭建测试环境,工程目录如下:
代码里面数据库映射使用了spring-data 和 Hibernate实现,方便实现,避免自己写sql。
java提供了两个排序用的接口Comparable和Comparator,一般情况下使用区别如下:
- Comparable 接口用于类的固定排序方式上面,比如类实现Comparable接口,实现compareTo方法,
做为类默认排序实现。- Comprator接口通常用于特殊场景下面的排序方式,比如学生成绩在计算过程中需要按照不同科目排序一样。
无论实现哪个接口,都可以使用Collections.sort方法对集合或者数组进行排序。
1 | public class Collections { |
通过hexo本地编写博客文件,github做远程仓库保存,travis-ci做集成服务.
- 开通GitHub账号,创建目标库
- 配置本地NodeJs,Hexo,git环境
- 初始化Hexo博客库
- 开通GitPages服务
- 添加Travis-CI服务
自行搜索把,已注册用户跳过。
创建一个Respository。
本人使用的是linux环境,装机自带git。没有的可以通过apt安装
1 | $ sudo apt install git |
git安装完成后推荐使用github的ssh通道上传下载代码,操作方便简单。
nodejs 可以自行下载配置也可以使用apt安装,不过鉴于npm官方库国内访问较慢,推荐使用阿里云镜像加速,npm阿里云镜像配置
node和git都配置好以后,
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment