看山聊 Java:使用 Java8 中的时间类
该图片由Erik Karits在Pixabay上发布
你好,我是看山。
前面聊了聊 Java8 新版时间 API 的类,然后又说了说怎么与旧版时间 API 的转换,今天来聊聊怎样通过新 API 实现老 API 的功能,这样我们就可以逐步替换掉旧版 API,与时俱进。
该图片由Erik Karits在Pixabay上发布
你好,我是看山。
前面聊了聊 Java8 新版时间 API 的类,然后又说了说怎么与旧版时间 API 的转换,今天来聊聊怎样通过新 API 实现老 API 的功能,这样我们就可以逐步替换掉旧版 API,与时俱进。
你好,我是看山。
前面写过一篇文章 《如果非要在多线程中使用 ArrayList 会发生什么?》,有读者反馈,Java 11 代码已经修复,还会出现 null 元素。
为了便于理解,当时只是通过代码执行顺序说明了异常原因。其实多线程中还会涉及 Java 内存模型,本文就从这方面说明一下。
你好,我是看山。
从 Java1 到 Java8 将近 20 年,再加上 Java8 的普及时间、各种历史 API 兼容过渡时间。我们很多时候需要在旧时间 API 与新时间 API 之间切换,并行使用。今天就来说说,java.util.Date
与java.time.LocalDate/LocalDateTime
如何互相转换。
该图片由Önder Örtel在Pixabay上发布
你好,我是看山。
年龄大的 Java 程序员都有体会,Java8 之前,Java 提供了一组时间类:java.util.Date
、java.util.Calendar
及其子类和工具类等。功能比较全面,最大的缺点是难用。所以很多团队直接放弃原生时间类,使用第三方的时间类库。后来,Java8 吸收了 joda-time 的优秀设计,提供了一组新的时间处理 APIjava.time.
。
本文作为这个系列的第一篇,扒一扒Date
和Calendar
存在的问题,说说 Java8 提供的时间库是怎么解决这些问题的。后续再说一下 Java8 中java.time.
包中的一些核心类,例如LocalDate
、LocalTime
、LocalDateTime
、ZonedDateTime
、Period
、Duration
。
你好,我是看山。
5 月 23 号参加了 infoQ 写作平台组织的线下沙龙,瞻仰了很多大佬的英姿。在 Geek 青年说的环节,也壮起胆量上台分享了自己的一些观点。第一次上台,面对台下的大佬们,难免有些紧张。不过思考不易,整理出来,希望能够帮到有相同困惑的同仁们。
你好,我是看山。
Java8 中引入了一个特别有意思类:Optional
,一个可以让我们更加轻松的避免 NPE(空指针异常,NullPointException)的工具。
很久很久以前,为了避免 NPE,我们会写很多类似if (obj != null) {}
的代码,有时候忘记写,就可能出现 NPE,造成线上故障。在 Java 技术栈中,如果谁的代码出现了 NPE,有极大的可能会被笑话,这个异常被很多人认为是低级错误。Optional
的出现,可以让大家更加轻松的避免因为低级错误被嘲讽的概率。