一位攻城狮的自我修养,在于良好的编程规范

2021-06-30  本文已影响0人  攻城狮Chova
下载.jpeg

命名风格

常量定义

public enum SeasonEnum {
    SPRING(1),SUMMER(2),AUTUMN(3),WINTER(4);
    private int seq;
    SeasonEnum(int seq) {
        this.seq=seq;
    }
} 

代码格式

OPP规约

/*
 * float类型的浮点数:
 *      指定一个误差范围,
 *      两个浮点数的差值在此范围之内,
 *      则认为是相等的.
 */
 float a = 1.0f - 0.9f;
 float b = 0.9f - 0.8f;
 float diff = 1e - 6f;
 if (Math.abs(a-b) < diff) {
    System.out.println("true");
 }

/* 
 *  使用BigDecimal来定义值,再进行浮点数的运算操作
 */
 BigDecimal a = new BigDecimal("1.0");
 BigDecimal b = new BigDecimal("0.9");
 BigDecimal c = new BigDecimal("0.8");
 BigDecimal x = a.substract(b); 
 BigDecimal y = b.substract(c);
 if (x.equals(y)) {
    System.out.println("true");
 } 
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = BigDecimal.valueOf(0.1);

日期时间

// 获取今年的天数
int daysOfThisYear = LocalDate.now().lengthOfYear();

// 获取指定某年的天数
LocalDate.of(2011, 1, 1).lengthOfYear();

集合处理

List<String> list = new ArrayList<>();
list.add("guan");
list.add("bao");
String[] array = new String[list.size];
array = list.toArray(array);
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (condition) {
        iterator.remove();
    }
}
集合类 Key Value Super 说明
Hashtable 不允许为null 不允许为null Dictionary 线程安全
ConcurrentHashMap 不允许为null 不允许为null AbstractMap 锁分段技术
TreeMap 不允许为null 允许为null AbstractMap 线程不安全
HashMap 允许为null 允许为null AbstractMap 线程不安全

由于HashMap的干扰,误以为ConcurrentHashMap可以置入null值,其实这样会抛出NPE异常

并发处理

ObjectThreadLocal.set(userInfo);
try {
    ...
} finally {
    ObjectThreadLocal.remove();
} 
Lock lock = new XxxLock();
lock.lock();
try {
    ...
} finally {
    lock.unlock();
}
Lock lock = new XxxLock();
boolean isLocked = lock.tryLock();
if (isLocked) {
    try {
        ...
    } finally {
        lock.unlock();
    }
}

控制语句

if (condition) {
    ...
    return obj;
}
// 然后写else的业务处理逻辑

对于超过3层的if - else的逻辑判断代码可以使用卫语句,策略模式,状态模式等实现

注释规约

前后分离

其它注意

上一篇 下一篇

猜你喜欢

热点阅读