java在編程語(yǔ)言生態(tài)系統(tǒng)中的位置
將Java編譯成jvm字節(jié)碼意味著他成為了互聯(lián)網(wǎng)的applet首選嫩痰。
java虛擬機(jī)及其字節(jié)碼可能會(huì)變得比Java語(yǔ)言本身更重要。
java也已成功的占領(lǐng)了嵌入式計(jì)算的若干領(lǐng)域既们。從智能卡巫员,烤面包機(jī)领舰,機(jī)頂盒到汽車制動(dòng)系統(tǒng)。
流處理
流是一系列數(shù)據(jù)項(xiàng)桐玻,一次只生成一項(xiàng)篙挽。程序可以從輸入流中一個(gè)一個(gè)讀取數(shù)據(jù)項(xiàng),然后以同樣的方式將數(shù)據(jù)項(xiàng)寫入輸出流镊靴。一個(gè)程序的輸出流很可能是另一個(gè)程序的輸入流铣卡。
比如 cat file1 file2 |tr "[A-Z]" "[a-z]" |sort |tail -3
現(xiàn)在你可以在一個(gè)更高的抽象層次上寫java8程序了:思路變成了把這樣的流變成那樣的流链韭。而不是一次只處理一個(gè)項(xiàng)目。另一個(gè)好處是煮落,java8可以透明地把輸入的不相關(guān)部分拿到幾個(gè)CPU內(nèi)核上去分別執(zhí)行你的stream操作流水線敞峭。
用行為參數(shù)化把代碼傳遞給方法
java8中增加的另一個(gè)編程概念是通過(guò)API來(lái)傳遞代碼的能力。
并行于共享的可變數(shù)據(jù)
(沒(méi)有共享的可變數(shù)據(jù)蝉仇,將方法和函數(shù)及代碼傳遞給其他方法的能力)是我們平常所說(shuō)的函數(shù)式編程范式的基石旋讹。與此相反, 在命令式編程范式中轿衔,你寫的程序則是一系列改變狀態(tài)的指令沉迹。"不能有共享的可變數(shù)據(jù)"的要求意味著一個(gè)方法是可以通過(guò)它將參數(shù)值轉(zhuǎn)化為結(jié)果的方式完全描述的;換句話說(shuō)害驹,他的行為就像一個(gè)數(shù)學(xué)函數(shù)鞭呕,沒(méi)有可見(jiàn)的副作用。