Maven生成可以直接运行的jar包的多种方式

Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar"(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。

定时任务之Timer

在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用 JDK 中的 Timer 定时任务来实现。

Docker学习

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

剖析Arrays.asList方法

使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合。

数字签名是什么

数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。

设计模式之观察者模式

观察者模式类似于消息队列中的发布订阅模式。我们用购物来打比方,假设某件商品卖得非常火爆,长期处于脱销的状态。由于供不应求,顾客会不时的去商店询问是否有货。顾客会去很多次商店但商店不一定有货,不仅仅顾客会疯,店里的老板和员工也会疯。到这里大家肯定已经想到了,与其让顾客不断的询问不如当有货的时候让商家主动通知顾客们来买。这种设计模式就是观察者模式。

设计模式之单例模式

单例模式顾名思义就是每个类只有一个实例对象。一般来说,单例模式有五种实现方式:懒汉、饿汉、双重检验锁、静态内部类、枚举。一般情况下直接使用饿汉实现就好了,如果明确要求要懒加载会倾向于使用静态内部类实现,如果涉及到反序列化创建对象时会试着使用枚举的方式来实现。