成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

再探Java 7:最新特性更新、代碼示例及性能測試

原創
開發 后端
本文包括Java 7的最新更新,代碼示例和對之前版本Java的性能比較等。我們可以發現,Java 7在語言、內核和客戶端方面的改進和提升相當明顯。

【51CTO獨家特稿】如果說今年Java開發平臺有什么大事兒,那就要數將于年底發布的Java 7了。之前51CTO曾報道過Java 7已經完成的七大新功能,包括新增的垃圾回收器G1JVM動態語言支持以及模塊化等等(更多關于Java 7的報道可以參考51CTO專題:Java 7,下一代Java開發技術詳解)。進入2010年,Java 7有哪些新的進展?這些新的特性更新對我們有哪些好處?該如何使用?Java 7的性能如何?本文將給你答案。

這里的內容主要包括其***更新、一些代碼實例、跟以前版本的Java進行性能比較需要參考的一些基準、以及什么時候它才會發布等信息。

首先,讓我們來看最重要的事情。為了確定JDK 7中有哪些語言方面的微小變化,有關人員建立了一個名叫Project Coin的項目。描述了最終的五個變化(比五個多一點)。

Java 7更新內容如下所示:

◆允許在switch中使用字符串

◆自動資源管理

◆通用實例創建來改進類型推斷(diamond)

◆簡化的Varargs方法調用

◆更好的整型文字綜合性建議

◆Collections集合的語言支持

◆JSR292的語言支持

在the OpenJDK 7特性頁面中,你還可以看到其他的功能。

這些功能分為不同的種類:

◆虛擬機(VM)

◆壓縮的64位對象指針

◆G1垃圾回收器GC(G1)

◆JSR 292:非Java語言的虛擬機支持(動態調用,InvokeDynamic)

語言方面(lang)

◆SR 294:模塊化編程的語言以及虛擬機支持

◆JSR 308:Java類型注釋

◆語言微小增強(我所談論的Project Coin)

◆JSR TBD: Project Lambda

內核(core)

◆模塊化(Jigsaw項目)

◆對類加載器的結構進行升級

◆關閉URLClassLoader的方法

◆Unicode 5.1標準

◆并行以及集合的升級(jsr166y)

◆JSR 203:Java平臺(NIO.2)的更多新型I/O API

◆SCTP (流控制傳輸協議,Stream Control Transmission Protocol)

◆SDP (套接字直接協議,Sockets Direct Protocol)

◆橢圓曲線加密技術(ECC)

客戶端(client)

◆Java 2D的XRender管道

◆轉發端口6u10部署特性

◆為6u10圖形功能創建新的平臺API

◆Swing的Nimbus外觀和感覺

◆Swing的JLayer元件

網絡(web)

◆更新XML的棧

就像你所看到的,這涉及了很多東西。幾個月前,我親自嘗試了新的Garbage Collector (GC),其性能表現給我留下了非常深刻的印象。不幸的是,JVM幾個小時就會崩潰一次,所以這個產品不能使用JVM。雖然在Java 1.6中也可以使用這個GC,但也會出現同樣的問題,經常會出現崩潰。

我想,這就是Java1.7增加新特性的原因。那么,現在我們***去看一些代碼實例。#p#

Java 7新特性的代碼實例

下面列出的大多數例子都是來源于Joe Wright博客中(Java7中的新語言特性)的高水平文章。

集合的語言支持

在這里我們主要講的是,當創建一個List、Set或者Map的時候,你怎樣盡量少寫代碼。你不必先實例化Object,然后再給Collection添加元素。你現在只需1行代碼就可以完成。

  1. List list = ["item"];  
  2. String item = list[0];  
  3.  
  4. Set set = {"item"};  
  5.  
  6. Map map = {"key" : 1};  
  7. int value = map["key"];  

自動資源管理

由于try / catch語句的原因,冗長的代碼令人非常頭痛。你或許會喜歡這個全新的特性。

實際上,下面這些代碼:

  1. BufferedReader br = new BufferedReader(new FileReader(path));  
  2. try {  
  3.    return br.readLine();  
  4. finally {  
  5.    br.close();  
  6. }  

轉變成了如下這種形式:

  1. try (BufferedReader br = new BufferedReader(new FileReader(path)) {  
  2.    return br.readLine();  
  3. }  

通用實例創建來改進類型推斷(diamond)

當你把對象的接口申明指定成范型后,你在對象實例化時不得不再指定一次。現在,你不必如此了,因為你可以這樣:

  1. Map> map = new HashMap<>();  

數值文字的加強

我不敢肯定這個對大多數人都有用。你可以這樣做:

  1. int billion = 1_000_000_000; 

允許在switch中使用字符串

這個無需解釋,其意思很明確。

  1. String availability = "available";  
  2. switch(availability) {  
  3.  case "available":  
  4.     //code  
  5.     break;  
  6.  
  7.   case "unavailable":  
  8.     //code  
  9.     break;  
  10.  
  11.   case "merged":  
  12.     //code  
  13.  
  14.   default:  
  15.     //code  
  16.     break;  
  17. }  

二進制文字

你可以使用前綴0b創建二進制文字

  1. int binary = 0b1001_1001; 

以上這些就是Java1.7的代碼實例。如果有人能給我指出還有哪些沒有包含進去,那就更好了。我敢肯定,已經有其他的開發人員對此進行了關注。

Java 1.7的性能表現

Java 7的性能有多大的提升?這里我們來針對Java 7做一個測試,內容如下。在一臺裝有ArchLinux系統的Macbook Pro電腦上(因特爾Duo CPU T7700,主頻2.40GHz,有兩年的使用時間)運行了這些測試。內存是2Gb的,把Heap Size設置成了728m(-Xms728m -Xmx728m)。

◆測試1 為一個List添加100萬個字符串值(String字符串是一個UUID,是用UUID.randomUUID()產生的)。

◆測試2 帶有100萬鍵、值對的HashMap。每個鍵、值對通過并行線程進行計算。鍵是一個UUID,值int是用Math.random()產生的。

◆測試3 把100萬個ArrayList條目打印到一定數量的文件(1000個)中。把條目寫進恰巧并行的不同文件中。

我只比較了Java1.6 (1.6.0_19) 和 Java 1.7 (b87)。后來根據評論的要求,我把Java1.5也添加了進來,但是并沒有添加Java1.4,因為它的時間太久遠了。

結果如下所示:

Java1.7性能測試 

Java 1.5

Java 1.6

Java 1.7

Test 1

10,698 

9,481

9,328

Test 2

69,827

37,935

36,636

Test 3

26,931

30,868

27,383

顯然,不同版本之間的性能差異并不是特別大。更多關于Java 7性能方面的測試可以參考51CTO之前的報道《Java1.7性能測試比較

Java 7的發布日期

在2009年11月的時候,Java1.7計劃是在2010年9月發布,到那時還將發布3個里程碑版本。其中,里程碑6在build 84版中已經完成,里程碑7的***個測試版B85也計劃在2010年3月4日完成,而本文使用的B87版本已在2010年3月25日發布。這樣看起來,Java 1.7很有可能在2010年9月發布。讓我們等待吧。 

 

【編輯推薦】

  1. 走進Java 7中的模塊系統
  2. Java 7的***類函數:學習閉包的使用
  3. Java 7新功能代碼范例
  4. 專題:JVM詳解 Java虛擬機原理與優化

 原文:Java 1.7 - What's new? Release date, code examples and performance  作者:inebium

責任編輯:佚名 來源: 51CTO.com
相關推薦

2010-05-28 09:14:52

Linux性能測試工具

2009-08-31 18:40:01

Java 7新功能

2010-05-13 08:57:22

jQuery 1.4

2009-02-20 16:53:07

Windows 7BetaBug

2010-03-26 15:30:57

CentOS源代碼

2009-03-13 19:21:21

Windows 7性能測試

2011-08-01 16:24:04

XCode CodeTimer 測試

2009-01-07 13:11:13

Java 7Java SEJava

2009-11-12 14:10:04

2024-03-06 18:09:06

Linux性能工具

2009-08-05 08:46:04

Windows 7性能測試

2009-08-07 08:33:33

Windows 7最終版

2024-09-02 08:31:46

2025-04-16 10:03:40

開發Spring應用程序

2024-05-17 08:42:52

AttributeMyClass方法

2009-10-22 08:48:59

Windows 7播放器推薦

2021-12-29 10:30:15

JMH代碼Java

2010-06-13 17:16:15

Linux性能測試工具

2011-02-23 15:49:49

2021-05-20 10:37:55

iOS蘋果系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天躁日日躁狠狠躁2018小说 | 99精品国产一区二区三区 | 久久99精品国产麻豆婷婷 | 中文日韩在线视频 | 激情久久网 | 一本一道久久a久久精品综合蜜臀 | 6080yy精品一区二区三区 | 国产成人精品免费视频大全最热 | 久久这里只有精品首页 | 欧美自拍日韩 | 艹逼网 | 久久亚洲国产精品日日av夜夜 | 久久蜜桃av一区二区天堂 | 亚洲不卡视频 | 日韩欧美国产一区二区 | 国产美女精品视频 | 懂色中文一区二区在线播放 | 久久久久国 | 欧美日韩国产中文 | 成人伊人 | 成人在线精品视频 | 国产日韩欧美一区二区 | 一区二区三区四区av | 一区二区三区亚洲 | 一片毛片| 日韩一区二区在线观看 | 欧美日韩国产一区二区三区 | 亚洲成人精品一区 | 国产日韩一区二区三免费高清 | 午夜免费成人 | 日本一区二区不卡 | 色婷婷九月 | 国产精品一区在线观看 | 夜夜操操操| 麻豆精品一区二区三区在线观看 | www.国产日本 | 91se在线 | 韩国av一区二区 | 91精品一区二区三区久久久久久 | 蜜桃一区二区三区 | 在线超碰 |