Java8的深入与实战
关于null的思考

关于null的思考

写代码的时候有个地方需要把 Integer 类型强转为 String

Integer firstEventType = eventTask.getEventType1();
String firstEventTypeName = eventTypeService.queryDescByCode(String.valueOf(firstEventType));

当我点开 String#valueof 这个静态方式时

public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}

当我们没有获取到 firstEventType 这个值时,为 null,此时它返回给我们的是字符串 “null” ,有时候就不符合我们的业务场景,最好是提前做空值判断。

Read more
Java中是如何实现线程通信

Java中是如何实现线程通信

正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。

本文涉及到的知识点:thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBarrier, FutureTask, Callable 等。

Read more

Java 中的锁

Java中的锁分类

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:

Read more
Java 反射