随笔分类 - Java
摘要:例如:将3666秒转换成1时1分6秒 public static void main() { int seconds = 3666; int h = seconds / 3600; int m = seconds % 3600 / 60; int s = seconds % 60; System.p
阅读全文
摘要:一、为什么引入新的日期时间库 Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的。 关于这个新的时间日期库的最大的优点就在于它定义清楚了时间日期相关的一些概念,比方说,瞬时时间(Inst
阅读全文
摘要:一、为什么引入函数式接口 作为Java函数式编程爱好者,我们都知道方法引用和 Lambda 表达式都必须被赋值,同时赋值需要类型信息才能使编译器保证类型的正确性。 我们先看一个Lambda代码示例: x -> x.toString() 我们清楚这里返回类型必须是 String,但 x 是什么类型呢?
阅读全文
摘要:一、为什么引入Stream流 流是一系列与特定存储机制无关的元素——实际上,流并没有“存储”之说。使用流,无需迭代集合中的元素,就可以从管道提取和操作元素。这些管道通常被组合在一起,形成一系列对流进行操作的管道。 在大多数情况下,将对象存储在集合中是为了处理他们,因此你将会发现你将编程的主要焦点从集
阅读全文
摘要:为什么引入Lambda表达式? Lambda 表达式产生函数,而不是类。 在 JVM(Java Virtual Machine,Java 虚拟机)上,一切都是一个类,因此在幕后执行各种操作使 lambda 看起来像函数 —— 但作为程序员,你可以高兴地假装它们“只是函数”。 Lambda 语法尽可能
阅读全文
摘要:为什么引入Optional类? 身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。之前,Google Guava项目曾提出用Optional类来包装对
阅读全文