jdk1.8的新特性
一丶lamuda表示式
函式式介面可以用 ()->{}代替內部類
二丶stream流 操作
建立stream:
1.集合.stream;
2.arrays.stream(陣列);
3.通過stream的iteate建立 乙個無限流
stream的分類:
1.stream:序列流
2.parallelstream:並行流
三丶四大基本函式式介面
function:傳入t型別返回r型別 stream.map();
consumer:傳入t不返回 如如何資料 stream.foreach(); strea.sorted();
supplier:生產乙個t型別的物件 返回乙個t物件
predicate:對t進行斷言判斷 返回乙個boolean stream.filter
四丶新日期類
舊時間操作類:
date:執行緒不安全,功能 不夠全面
calendar:現執行緒不安全,是 date的替代品
新時間操作類
localdate:獲取日期
localtime:獲取時間
localdatetime:獲取日期時間
zoneddatetime:獲取帶時區的時間
instant:獲取時間戳
duration:用於計算兩個時間間隔的類
舊時間格式化器:
******dateformat:執行緒不安全
新時間格式化器:
datetimeformatter:執行緒安全,支援格式多,提供語言選擇
五丶io流
bio:同步阻塞式io,伺服器實現模式為乙個連線乙個執行緒,即客戶端有連線請求時伺服器端就需要啟動乙個執行緒進行處理,如果這個連線不做任何事情會造成不必要的執行緒開銷,當然可以通過執行緒池機制改善。
nio:同步非阻塞式io,伺服器實現模式為乙個請求乙個執行緒,即客戶端傳送的連線請求都會註冊到多路復用器上,多路復用器輪詢到連線有i/o請求時才啟動乙個執行緒進行處理。
aio(nio.2): 非同步非阻塞io,在此種模式下,使用者程序只需要發起乙個io操作然後立即返回,等io操作真正的完成以後,應用程式會得到io操作完成的通知,此時使用者程序只需要對資料進行處理就好了,不需要進行實際的io讀寫操作,因為真正的io讀取或者寫入操作已經由核心完成了。
通道:channel ,不記錄資料只負責傳輸
bio/nio通道
filechannel //檔案通道
socketchannel //客戶端 client通道
serversocketchannel //tcp服務端server通道
datagramchannel //udp服務端server通道
aio通道:
asynchronousfilechannel //非同步檔案通道
asynchronoussocketchannel //非同步網路客戶端client通道
asynchronousserversocketchannel //y非同步網路服務端server通道
緩衝區 :負責資料的儲存
bytebuffer
charbuffer
…獲取方式
allocate:非直接緩衝區,程式–>使用者態–>核心態–>磁碟
allocatedirect:直接緩衝區,程式–>核心態–>磁碟 快但風險和不可控指數高
四大引數
bytebuffer.limit(); //界限 界限外的不可讀寫 可以理解為有效資料
bytebuffer.capacity(); //容量 一旦宣告不可改變
bytebuffer.position(); //正在操作的緩衝區的位置
bytebuffer.mark(); //記錄psotation的位置
關係:postation阻塞模式切換非阻塞模式
socketchannel.configureblocking(false);
selector 選擇器:
//獲取選擇器
selector selector = selector.open();
//註冊選擇器:將
open.register(selector, selectionkey.op_accept);
while (selector.select()>0)
} else if (next.isreadable()) }}
iterator.remove();
}
JDK各個版本新特性
jdk1.5 1.自動拆裝箱 public class testclass 輸出結果 true false1執行了integer a integer.valueof 10 自動裝箱操作,所以會重用記憶體位址,但是2裡的200不在 128到127範圍內,不會重用記憶體位址。2.可變引數 實質上是乙個陣...
JDK1 5的新特性
1.靜態匯入 靜態匯入得是靜態方法或靜態類 2.可變引數 overload與override的區別 overload是過載,override是重寫 可變引數就是overload 可變引數的特點 1.可變引數中的.只能出現在引數列表的最後 2.可變引數中的.位於變數型別和變數名之間,前後有無空格都可以...
JDK5新特性 列舉
一些程式在執行時,他需要的資料不能是任意的,而必須是一定範圍內的值,jdk5以前採用自定義類來解決,jdk5以後可以直接採用列舉解決。在jdk5之後,使用enum關鍵字定義一種新的型別,稱為列舉型別。enum類和enum關鍵字 使用enum關鍵字定義的列舉類,實際上就相當於定義了乙個類,此類繼承了e...