摘要: 在Java 1.0中,对日期和时间的支持只能依赖java.util.Date类。同时这个类还有两个很大的缺点:年份的起始选择是1900年,月份的起始从0开始。 在Java 1.1中,Date类中的很多方法被废弃,取而代之的是java.util.Calendar类。然而Calendar类也有类似的问题 阅读全文
posted @ 2020-02-28 09:57 后端小哥 阅读(217) 评论(0) 推荐(1) 编辑
摘要: 某个网站的数据来自Facebook、Twitter和Google,这就需要网站与互联网上的多个Web服务通信。可是,你并不希望因为等待某些服务的响应,阻塞应用程序的运行,浪费数十亿宝贵的CPU时钟周期。比如,不要因为等待Facebook的数据,暂停对来自Twitter的数据处理。 第7章中介绍的分支 阅读全文
posted @ 2020-02-26 15:28 后端小哥 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 1965年,英国一位名为Tony Hoare的计算机科学家在设计ALGOL W语言时提出了null引用的想法。ALGOL W是第一批在堆上分配记录的类型语言之一。Hoare选择null引用这种方式,“只是因为这种方法实现起来非常容易”。虽然他的设计初衷就是要“通过编译器的自动检测机制,确保所有使用引 阅读全文
posted @ 2019-09-17 10:23 后端小哥 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 传统上,Java程序的接口是将相关方法按照约定组合到一起的方式。实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。 但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。现实情况是,现存的实体类往往不在接口设计者的控制范围之内,这些实体类为了适配新 阅读全文
posted @ 2019-08-31 17:34 后端小哥 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 我们会介绍几种方法,帮助你重构代码,以适配使用Lambda表达式,让你的代码具备更好的可读性和灵活性。除此之外,我们还会讨论目前比较流行的几种面向对象的设计模式, 包括策略模式、模板方法模式、观察者模式、责任链模式,以及工厂模式,在结合Lambda表达式之后变得更简洁的情况。最后,我们会介绍如何测试 阅读全文
posted @ 2019-08-29 09:40 后端小哥 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 在Java 7之前,并行处理数据集合非常麻烦。第一,你得明确地把包含数据的数据结构分成若干子部分。第二,你要给每个子部分分配一个独立的线程。第三,你需要在恰当的时候对它们进行同步来避免不希望出现的竞争条件,等待所有线程完成,最后把这些部分结果合并起来。Java 7引入了一个叫作分支/合并的框架,让这 阅读全文
posted @ 2019-08-28 07:19 后端小哥 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 1. 收集器简介 collect() 接收一个类型为 Collector 的参数,这个参数决定了如何把流中的元素聚合到其它数据结构中。Collectors 类包含了大量常用收集器的工厂方法,toList() 和 toSet() 就是其中最常见的两个,除了它们还有很多收集器,用来对数据进行对复杂的转换 阅读全文
posted @ 2019-08-27 10:20 后端小哥 阅读(684) 评论(0) 推荐(1) 编辑
摘要: 流让你从外部迭代转向内部迭代,for循环显示迭代不用再写了,流内部管理对集合数据的迭代。这种处理数据的方式很有用,因为你让Stream API管理如何处理数据。这样Stream API就可以在背后进行多种优化。此外,使用内部迭代的话,Stream API可以决定并行运行你的代码。这要是用外部迭代的话 阅读全文
posted @ 2019-08-26 09:55 后端小哥 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 1. 流简介 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理。让我们来看一个实例返回低热量( lowCaloricDishes = new ArrayLis 阅读全文
posted @ 2019-08-25 08:57 后端小哥 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 1. Lambda简介 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 匿名——我们说匿名,是因为它不像普通的方法那样有一个明确的名称:写得少而想得多! 函数——我们说它是函数,是因为Lambda函 阅读全文
posted @ 2019-08-24 18:28 后端小哥 阅读(436) 评论(3) 推荐(0) 编辑