

java8實(shí)戰(zhàn)電子圖書(shū)是一款由人民郵電出版社出版于2019年發(fā)布的java8實(shí)戰(zhàn)操作學(xué)習(xí)教程電子圖書(shū),該圖書(shū)從基礎(chǔ)知識(shí)、函數(shù)式數(shù)據(jù)處理、高效Java 8 編程、超越Java 8四部分詳細(xì)的展現(xiàn)了java編程語(yǔ)言的特性與學(xué)習(xí)方法,適當(dāng)?shù)膶W(xué)習(xí)運(yùn)用,對(duì)廣大java編程初學(xué)者和程序員朋友們幫助很大。有需要的朋友們,快來(lái)旋風(fēng)軟件園下載吧!
本書(shū)全面介紹了Java 8 這個(gè)里程碑版本的新特性,包括Lambdas、流和函數(shù)式編程。有了函數(shù)式的編程特性,可以讓代碼更簡(jiǎn)潔,同時(shí)也能自動(dòng)化地利用多核硬件。全書(shū)分四個(gè)部分:基礎(chǔ)知識(shí)、函數(shù)式數(shù)據(jù)處理、高效Java 8 編程和超越Java 8,清晰明了地向讀者展現(xiàn)了一幅Java 與時(shí)俱的現(xiàn)代化畫(huà)卷。 本書(shū)全面介紹了Java 8 這個(gè)里程碑版本的新特性,包括Lambdas、流和函數(shù)式編程。有了函數(shù)式的編程特性,可以讓代碼更簡(jiǎn)潔,同時(shí)也能自動(dòng)化地利用多核硬件。全書(shū)分四個(gè)部分:基礎(chǔ)知識(shí)、函數(shù)式數(shù)據(jù)處理、高效Java 8 編程和超越Java 8,清晰明了地向讀者展現(xiàn)了一幅Java 與時(shí)俱的現(xiàn)代化畫(huà)卷。

1、如何使用Java 8新增的強(qiáng)大特性
2、如何編寫(xiě)能有效利用多核架構(gòu)的程序
3、重構(gòu)、測(cè)試和調(diào)試
4、怎樣高效地應(yīng)用函數(shù)式編程

第一部分 基礎(chǔ)知識(shí)
第1章 為什么要關(guān)心Java 8 2
第2章 通過(guò)行為參數(shù)化傳遞代碼 20
第3章 Lambda表達(dá)式 34
第二部分 函數(shù)式數(shù)據(jù)處理
第4章 引入流 68
第5章 使用流 82
第6章 用流收集數(shù)據(jù) 111
第7章 并行數(shù)據(jù)處理與性能 141
第三部分 高效Java 8編程
第8章 重構(gòu)、測(cè)試和調(diào)試 164
第9章 默認(rèn)方法 185
第10章 用Optional取代null 202
第11章 CompletableFuture:組合式異步編程 220
第12章 新的日期和時(shí)間API 246
第四部分 超越Java 8
第13章 函數(shù)式的思考 262
第14章 函數(shù)式編程的技巧 275
第15章 面向?qū)ο蠛秃瘮?shù)式編程的混合:Java 8和Scala的比較 299
第16章 結(jié)論以及Java的未來(lái) 313
函數(shù)式接口
Java 8 引入的一個(gè)核心概念是函數(shù)式接口(Functional Interfaces)。通過(guò)在接口里面添加一個(gè)抽象方法,這些方法可以直接從接口中運(yùn)行。如果一個(gè)接口定義個(gè)唯一一個(gè)抽象方法,那么這個(gè)接口就成為函數(shù)式接口。同時(shí),引入了一個(gè)新的注解:@FunctionalInterface。可以把他它放在一個(gè)接口前,表示這個(gè)接口是一個(gè)函數(shù)式接口。這個(gè)注解是非必須的,只要接口只包含一個(gè)方法的接口,虛擬機(jī)會(huì)自動(dòng)判斷,不過(guò)最好在接口上使用注解 @FunctionalInterface 進(jìn)行聲明。在接口中添加了 @FunctionalInterface 的接口,只允許有一個(gè)抽象方法,否則編譯器也會(huì)報(bào)錯(cuò)。
Lambda 表達(dá)式
函數(shù)式接口的重要屬性是:我們能夠使用 Lambda 實(shí)例化它們,Lambda 表達(dá)式讓你能夠?qū)⒑瘮?shù)作為方法參數(shù),或者將代碼作為數(shù)據(jù)對(duì)待。Lambda 表達(dá)式的引入給開(kāi)發(fā)者帶來(lái)了不少優(yōu)點(diǎn):在 Java 8 之前,匿名內(nèi)部類(lèi),監(jiān)聽(tīng)器和事件處理器的使用都顯得很冗長(zhǎng),代碼可讀性很差,Lambda 表達(dá)式的應(yīng)用則使代碼變得更加緊湊,可讀性增強(qiáng);Lambda 表達(dá)式使并行操作大集合變得很方便,可以充分發(fā)揮多核 CPU 的優(yōu)勢(shì),更易于為多核處理器編寫(xiě)代碼;
接口的增強(qiáng)
Java 8 對(duì)接口做了進(jìn)一步的增強(qiáng)。在接口中可以添加使用 default 關(guān)鍵字修飾的非抽象方法。還可以在接口中定義靜態(tài)方法。如今,接口看上去與抽象類(lèi)的功能越來(lái)越類(lèi)似了。
集合之流式操作
Java 8 引入了流式操作(Stream),通過(guò)該操作可以實(shí)現(xiàn)對(duì)集合(Collection)的并行處理和函數(shù)式操作。根據(jù)操作返回的結(jié)果不同,流式操作分為中間操作和最終操作兩種。最終操作返回一特定類(lèi)型的結(jié)果,而中間操作返回流本身,這樣就可以將多個(gè)操作依次串聯(lián)起來(lái)。根據(jù)流的并發(fā)性,流又可以分為串行和并行兩種。流式操作實(shí)現(xiàn)了集合的過(guò)濾、排序、映射等功能。
Stream 和 Collection 集合的區(qū)別:Collection 是一種靜態(tài)的內(nèi)存數(shù)據(jù)結(jié)構(gòu),而 Stream 是有關(guān)計(jì)算的。前者是主要面向內(nèi)存,存儲(chǔ)在內(nèi)存中,后者主要是面向 CPU,通過(guò) CPU 實(shí)現(xiàn)計(jì)算。
注解的更新
對(duì)于注解,Java 8 主要有兩點(diǎn)改進(jìn):類(lèi)型注解和重復(fù)注解。
Java 8 的類(lèi)型注解擴(kuò)展了注解使用的范圍。在該版本之前,注解只能是在聲明的地方使用。現(xiàn)在幾乎可以為任何東西添加注解:局部變量、類(lèi)與接口,就連方法的異常也能添加注解。新增的兩個(gè)注釋的程序元素類(lèi)型 ElementType.TYPE_USE 和 ElementType.TYPE_PARAMETER 用來(lái)描述注解的新場(chǎng)合。ElementType.TYPE_PARAMETER 表示該注解能寫(xiě)在類(lèi)型變量的聲明語(yǔ)句中。而 ElementType.TYPE_USE 表示該注解能寫(xiě)在使用類(lèi)型的任何語(yǔ)句中(例如聲明語(yǔ)句、泛型和強(qiáng)制轉(zhuǎn)換語(yǔ)句中的類(lèi)型)。
安全性
現(xiàn)今,互聯(lián)網(wǎng)環(huán)境中存在各種各種潛在的威脅,對(duì)于 Java 平臺(tái)來(lái)說(shuō),安全顯得特別重要。為了保證新版本具有更高的安全性,Java 8 在安全性上對(duì)許多方面進(jìn)行了增強(qiáng),也為此推遲了它的發(fā)布日期。
IO/NIO 的改進(jìn)
Java 8 對(duì) IO/NIO 也做了一些改進(jìn)。主要包括:改進(jìn)了 java.nio.charset.Charset 的實(shí)現(xiàn),使編碼和解碼的效率得以提升,也精簡(jiǎn)了 jre/lib/charsets.jar 包;優(yōu)化了 String(byte[],*) 構(gòu)造方法和 String.getBytes() 方法的性能;還增加了一些新的 IO/NIO 方法,使用這些方法可以從文件或者輸入流中獲取流(java.util.stream.Stream),通過(guò)對(duì)流的操作,可以簡(jiǎn)化文本行處理、目錄遍歷和文件查找。
全球化功能
Java 8 版本還完善了全球化功能:支持新的 Unicode 6.2.0 標(biāo)準(zhǔn),新增了日歷和本地化的 API,改進(jìn)了日期時(shí)間的管理等。
Java 的日期與時(shí)間 API 問(wèn)題由來(lái)已久,Java 8 之前的版本中關(guān)于時(shí)間、日期及其他時(shí)間日期格式化類(lèi)由于線程安全、重量級(jí)、序列化成本高等問(wèn)題而飽受批評(píng)。Java 8 吸收了 Joda-Time 的精華,以一個(gè)新的開(kāi)始為 Java 創(chuàng)建優(yōu)秀的 API。新的 java.time 中包含了所有關(guān)于時(shí)鐘(Clock),本地日期(LocalDate)、本地時(shí)間(LocalTime)、本地日期時(shí)間(LocalDateTime)、時(shí)區(qū)(ZonedDateTime)和持續(xù)時(shí)間(Duration)的類(lèi)。歷史悠久的 Date 類(lèi)新增了 toInstant() 方法,用于把 Date 轉(zhuǎn)換成新的表示形式。這些新增的本地化時(shí)間日期 API 大大簡(jiǎn)化了了日期時(shí)間和本地化的管理。
Java 8 開(kāi)發(fā)環(huán)境
隨著 Java 8 正式發(fā)布,許多 IDE 也開(kāi)始提供對(duì) Java 8 的支持。Eclipse 是 Java 開(kāi)發(fā)人員最為常用集成開(kāi)發(fā)環(huán)境,在最新的 Eclipse Kepler 4.3.2 版本中已經(jīng)默認(rèn)增加了對(duì) Java 8 的支持。要想在 Eclipse Kepler 的前期版本中添加對(duì) Java 8 的支持。
57.91M
166.00M
28.94M
27.53M
166.00M
54.00M
166.00M
14040.00M
357.00M
149.00M
388.58M
80.91M
67.53M
145.60M
166.78M
MD5:1e4bd7edbdeac9de418a068dfd4c59bd
大小:7.32M / 版本:官方免費(fèi)版
大小:2.43M / 版本:官方免費(fèi)版
大小:34KB / 版本:官方免費(fèi)版
大小:16.92M / 版本:官方免費(fèi)版
大小:2.59M / 版本:官方免費(fèi)版
大小:34.00M / 版本:官方免費(fèi)版
大小:11.37M / 版本:官方免費(fèi)版
大小:58.12M / 版本:官方免費(fèi)版