【Guava】开发过程中,业务逻辑优雅的参数校验 Preconditions

在开发过程中,对数据格式或者数据在业务上的期望值验证是必须要做的, 这样课可以进一步保证方法能够按照正常流程执行下去, 而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。 但是常规if...else...写法既有大量代码量, 又会导致读起来非常不友好,且复用性不高。 Preconditions.checkArgument(source != null, "入参非法!")
阅读全文

设计模式 -- 单例模式

## 定义 > 单例模式,属于创建型模式。该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 ### 何时使用 当想控制实例数目,节省系统资源的时候。 ### 关键 构造函数必须是私有的。 ### 应用场景 * 服务控制器 * 服务工厂 * 创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。
阅读全文

Java的自动装箱与拆箱原理探讨

Java的自动装箱与拆箱(Autoboxing and unboxing) > 装箱就是自动将基本数据类型转换为包装器类型; > 拆箱就是自动将包装器类型转换为基本数据类型。 装箱拆箱过程是自动执行的。 ``` //自动装箱 Integer total = 99; //自动拆箱 int totalprim = total; ``` ## 需要装箱拆箱的类型有哪些?
阅读全文

volatile关键字解析

## volatile关键字的两层语义 1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。 2)禁止进行指令重排序。 ## volatile保证原子性吗? volatile关键字保证了操作的可见性,但是volatile不保证原子性。 * 保证单次读或单次写操作的原子性。 * 不保证自增操作或多次读写操作的顺序性, 也就没办法保证原子性
阅读全文

&和&&的区别?

## &运算符 &运算符有两种用法: (1)按位与; (2)逻辑与。 ## &&运算符 &&运算符是`短路与`运算。 `逻辑与`跟`短路与`的差别是非常巨大的,*虽然二者都要求运算符左右两端的布尔值都是true,整个表达式的值才是 true。* &&之所以称为短路运算,是因为如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。
阅读全文

优秀开源项目、博客、书籍汇总

## 博客、教程 * [并发编程网](http://ifeve.com/) `让天下没有难学的技术` * [莫那鲁道](http://thinkinjava.cn/) `一个java开发者` * [酷壳](https://coolshell.cn/) `耗子叔博客` ## 架构师必备技能 ### Redis * [Redis Command Reference](https://g
阅读全文
本文目录
    Loading...