10、集合类:坑满地的List列表操作

你好,我是朱晔。今天,我来和你说说List列表操作有哪些坑。 Pascal之父尼克劳斯 · 维尔特(Niklaus Wirth),曾提出一个著名公式“程序=数据结构+算法”。由此可见,数据结构的重要性。常见的数据结构包括List、Set、M...

Java业务开发常见错误100例

11、空值处理:分不清楚的null和恼人的空指针

你好,我是朱晔。今天,我要和你分享的主题是,空值处理:分不清楚的null和恼人的空指针。 有一天我收到一条短信,内容是“尊敬的null你好,XXX”。当时我就笑了,这是程序员都能Get的笑点,程序没有获取到我的姓名,然后把空格式化为了null。很明显...

Java业务开发常见错误100例

12、异常处理:别让自己在出问题的时候变为瞎子

你好,我是朱晔。今天,我来和你聊聊异常处理容易踩的坑。 应用程序避免不了出异常,捕获和处理异常是考验编程功力的一个精细活。一些业务项目中,我曾看到开发同学在开发业务逻辑时不考虑任何异常处理,项目接近完成时再采用“流水线”的方式进行异常处理,也就是统一...

Java业务开发常见错误100例

13、日志:日志记录真没你想象的那么简单

你好,我是朱晔。今天,我和你分享的是,记录日志可能会踩的坑。 一些同学可能要说了,记录日志还不简单,无非是几个常用的API方法,比如debug、info、warn、error;但我就见过不少坑都是记录日志引起的,容易出错主要在于三个方面: 日志框架...

Java业务开发常见错误100例

14、文件IO:实现高效正确的文件读写并非易事

你好,我是朱晔。今天,我们来聊聊如何实现高效、正确的文件操作。 随着数据库系统的成熟和普及,需要直接做文件IO操作的需求越来越少,这就导致我们对相关API不够熟悉,以至于遇到类似文件导出、三方文件对账等需求时,只能临时抱佛脚,随意搜索一些代码完成需求...

Java业务开发常见错误100例

15、序列化:一来一回你还是原来的你吗

你好,我是朱晔。今天,我来和你聊聊序列化相关的坑和最佳实践。 序列化是把对象转换为字节流的过程,以方便传输或存储。反序列化,则是反过来把字节流转换为对象的过程。在介绍[文件IO]的时候,我提到字符编码是把字符转换为二进制的过程,至于怎么转换需要由字符...

Java业务开发常见错误100例

16、用好Java 8的日期时间类,少踩一些“老三样”的坑

你好,我是朱晔。今天,我来和你说说恼人的时间错乱问题。 在Java 8之前,我们处理日期时间需求时,使用Date、Calender和SimpleDateFormat,来声明时间戳、使用日历处理日期和格式化解析日期时间。但是,这些类的API的缺点比较明...

Java业务开发常见错误100例

17、别以为“自动挡”就不可能出现OOM

你好,我是朱晔。今天,我要和你分享的主题是,别以为“自动挡”就不可能出现OOM。 这里的“自动挡”,是我对Java自动垃圾收集器的戏称。的确,经过这么多年的发展,Java的垃圾收集器已经非常成熟了。有了自动垃圾收集器,绝大多数情况下我们写程序时可以专...

Java业务开发常见错误100例

18、当反射、注解和泛型遇到OOP时,会有哪些坑

你好,我是朱晔。今天,我们聊聊Java高级特性的话题,看看反射、注解和泛型遇到重载和继承时可能会产生的坑。 你可能说,业务项目中几乎都是增删改查,用到反射、注解和泛型这些高级特性的机会少之又少,没啥好学的。但我要说的是,只有学好、用好这些高级特性,才...

Java业务开发常见错误100例

19、Spring框架:IoC和AOP是扩展的核心

你好,我是朱晔。今天,我们来聊聊Spring框架中的IoC和AOP,及其容易出错的地方。 熟悉Java的同学都知道,Spring的家族庞大,常用的模块就有Spring Data、Spring Security、Spring Boot、Spring C...

Java业务开发常见错误100例