JDK各版本新增的主要特性

JDK1.5新特性:

1.自動裝箱與拆箱:

2.枚舉

3.靜態導入,如:import staticjava.lang.System.out

4.可變參數(Varargs)

5.內省(Introspector),主要用于操作JavaBean中的屬性,通過getXxx/setXxx。一般的做法是通過類Introspector來獲取某個對象的BeanInfo信息,然后通過BeanInfo來獲取屬性的描述器(PropertyDescriptor),通過這個屬性描述器就可以獲取某個屬性對應的getter/setter方法,然后我們就可以通過反射機制來調用這些方法。

6.泛型(Generic)(包括通配類型/邊界類型等)

7.For-Each循環

8.注解

9.協變返回類型:實際返回類型可以是要求的返回類型的一個子類型

JDK1.6新特性:

1. AWT新增加了兩個類:Desktop和SystemTray,其中前者用來通過系統默認程序來執行一個操作,如使用默認瀏覽器瀏覽指定的URL,用默認郵件客戶端給指定的郵箱發郵件,用默認應用程序打開或編輯文件(比如,用記事本打開以txt為后綴名的文件),用系統默認的打印機打印文檔等。后者可以用來在系統托盤區創建一個托盤程序

2.使用JAXB2來實現對象與XML之間的映射,可以將一個Java對象轉變成為XML格式,反之亦然

3. StAX,一種利用拉模式解析(pull-parsing)XML文檔的API。類似于SAX,也基于事件驅動模型。之所以將StAX加入到JAXP家族,是因為JDK6中的JAXB2和JAX-WS 2.0中都會用StAX。

4.使用Compiler API,動態編譯Java源文件,如JSP編譯引擎就是動態的,所以修改后無需重啟服務器。

5.輕量級Http Server API,據此可以構建自己的嵌入式HttpServer,它支持Http和Https協議。

6.插入式注解處理API(PluggableAnnotation Processing API)

7.提供了Console類用以開發控制臺程序,位于java.io包中。據此可方便與Windows下的cmd或Linux下的Terminal等交互。

8.對腳本語言的支持如: ruby,groovy, javascript

9.Common Annotations,原是J2EE 5.0規范的一部分,現在把它的一部分放到了J2SE 6.0中

10.嵌入式數據庫 Derby

JDK1.7 新特性

1.對Java集合(Collections)的增強支持,可直接采用[]、{}的形式存入對象,采用[]的形式按照索引、鍵值來獲取集合中的對象。如:

List<String>list=[“item1”,”item2”];//存

Stringitem=list[0];//直接取

???????? Set<String>set={“item1”,”item2”,”item3”};//存

???????? Map<String,Integer> map={“key1”:1,”key2”:2};//存

???????? Intvalue=map[“key1”];//取

2.在Switch中可用String

3.數值可加下劃線用作分隔符(編譯時自動被忽略)

4.支持二進制數字,如:int binary= 0b1001_1001;

5.簡化了可變參數方法的調用

6.調用泛型類的構造方法時,可以省去泛型參數,編譯器會自動判斷。

7.Boolean類型反轉,空指針安全,參與位運算

8.char類型的equals方法: booleanCharacter.equalsIgnoreCase(char ch1, char ch2)

9.安全的加減乘除: Math.safeToInt(longv); Math.safeNegate(int v); Math.safeSubtract(long v1, int v2);Math.safeMultiply(int v1, int v2)……

10 .Map集合支持并發請求,注HashTable是線程安全的,Map是非線程安全的。但此處更新使得其也支持并發。另外,Map對象可這樣定義:Map map = {name:"xxx",age:18};

JDK1.8新特性

1.接口的默認方法:即接口中可以聲明一個非抽象的方法做為默認的實現,但只能聲明一個,且在方法的返回類型前要加上“default”關鍵字。

2. Lambda 表達式:是對匿名比較器的簡化,如:

???????? Collections.sort(names,(String a, String b) -> {

?????? returnb.compareTo(a);

});

對于函數體只有一行代碼的,你可以去掉大括號{}以及return關鍵字。如:

???????? Collections.sort(names,(String a, String b) -> b.compareTo(a));

或:Collections.sort(names, (a, b) -> b.compareTo(a));

3. 函數式接口:是指僅僅只包含一個抽象方法的接口,要加@FunctionalInterface注解

4. 使用 :: 關鍵字來傳遞方法或者構造函數引用

5.多重注解

6.還增加了很多與函數式接口類似的接口以及與Map相關的API等……

轉載于:https://www.cnblogs.com/yepei/p/5650440.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542974.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542974.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542974.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle 導入sql文件 漢字亂碼_將現有的sql腳本導入 Oracle 數據庫,中文亂碼問題...

將現有的sql 腳本導入 Oracle數據庫比如 在windows 系統下&#xff0c;可以寫一個 bat 來實現直接導入如&#xff1a;bat 中的內容如下&#xff0c;logs.log 將會記錄執行日志sqlplus user/passworddbname create.sql > logs.logcreate.sql 中的內容可以是需要執行的sql 語句…

html圖片多邊形怎么寫,使用CSS3構建的圖像多邊形裁剪動畫特效

CSS語言&#xff1a;CSSSCSS確定html {background: #333;}.polygon {-webkit-clip-path: polygon(50% 0%, 79.38926% 9.54915%, 97.55283% 34.54915%, 97.55283% 65.45085%, 79.38926% 90.45085%, 50% 100%, 20.61074% 90.45085%, 2.44717% 65.45085%, 2.44717% 34.54915%, 20.…

python函數示例_帶Python示例的complex()函數

python函數示例Python complex()函數 (Python complex() function) complex() function is a library function in Python, it is used to get the complex number from given a real number or/and an imaginary number (which is an optional part), it accepts either a rea…

windows 下 git 禁用 CRLF 轉換 LF

2019獨角獸企業重金招聘Python工程師標準>>> windows中的換行符為 CRLF&#xff0c; 而在linux下的換行符為LF&#xff0c;所以在執行add . 時出現提示&#xff0c;解決辦法&#xff1a; 刪除根目錄 .git 文件夾禁用自動轉換 > git config --global core.autocrl…

cmd執行sql文件路徑 oracle_oracle 基礎 執行sql文件

Oracle執行外部文件&#xff1a;sql>new.sql執行多個sql文件:1.把所有的文件都放在同一個目錄下&#xff0c;然后在命令行里執行命令&#xff1a;c:>dir/b > d:/1.sql會把所有的sql文件名都輸出到一個sql文件中。2.用UltraEdit打開生成的sql文件&#xff0c;altC切換到…

獲取天氣html,使用htmlparser獲取sohu的天氣預報

首先&#xff0c;我們新建一個類&#xff0c;存放天氣信息/** Created on 2005-3-8** To change the template for this generated file go to* Window>Preferences>Java>Code Generation>Code and Comments*/packageorg.exoplatform.portlets.chinaweather.compon…

使用gulp構建前端(三)

為什么80%的碼農都做不了架構師&#xff1f;>>> 使用gulp構建前端&#xff08;三&#xff09; 緊接著上述文章內容&#xff0c;開始新的插件的使用 插件三 gulp-clean-css&#xff0c;作用減小文件大小&#xff0c;并給引用url添加版本號避免緩存&#xff0c;一個需…

c++中atan2函數_atan2()函數以及C ++中的示例

c中atan2函數C atan2()函數 (C atan2() function) atan2() function is a library function of cmath header, it is used to find the principal value of the arc tangent of y/x, where y is the proportion of the y-coordinate and x is the proportion of the x-coordin…

python不合法的布爾表達式_python測試題

一、填空題 1.Python使用符號標示注釋;以劃分語句塊。 2、Python序列類型包括 、、三種; 是Python中唯一的映射類型。 3、Python中的可變數據類型有,不可變數據類 型有。 4、Python的數字類型分為、、等子類型。 5、設s=‘abcdefg’,則s[3]值是 ,s[3:5]值是 , s[:5]值是…

網站html標簽如何優化,網站HTML標簽優化教程

真正需要SEOer掌握并經常使用的HTML標簽也就那么幾個&#xff0c;本小節丈哥seo帶來的是頁面HTML標簽優化。title標簽 – 標題標簽1)title標簽用法網站SEOHTML標簽優化教程 – 丈哥seo2)標題標簽的作用關于網站標題寫法與操作技巧有許多&#xff0c;需要怎么優化標題的朋友可以…

hypot函數_hypot()函數與C ++中的示例

hypot函數C hypot()函數 (C hypot() function) hypot() function is a library function of cmath header, it is used to find the hypotenuse of the given numbers, it accepts two numbers and returns the calculated result of hypotenuse i.e. sqrt(x*x y*y). hypot()…

docker 磁盤問題:device or resource busy

問題&#xff1a;[roothdp-gp-dk02 ~]# docker start 01ea65845e45Error response from daemon: Cannot start container 01ea65845e45: Error getting container 01ea65845e4547be24bc3db0bc3b424faf52b8a0534eb525aa829dd9fd6081c2 from driver devicemapper: Error mounting…

axure form列表_常見的列表頁如何用Axure畫出來

列表頁是PM畫原型的時候最容易碰到的頁面類型&#xff0c;那么如何快速畫出并且展現交互呢&#xff1f;我們從具體的例子開始講解其中的技巧&#xff0c;和各種不同的演變場景。希望初級PM可以通過這篇文章改進下自己的畫法。列表頁基本是由頁面框架&#xff0c;上導航&#xf…

python中divmod_divmod()函數以及Python中的示例

python中divmodPython divmod()函數 (Python divmod() function) divmod() function is a library function, it is used to get the quotient and remainder of given values (dividend and divisor), it accepts two arguments 1) dividend and 2) divisor and returns a tup…

html 輪播圖的鼠標事件,這是圖片輪播的代碼 html+css,怎么加上鼠標懸停移出繼續功能?...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓.one {position: absolute;width: 500px;height: 400px;overflow: hidden;}.one_cantent img {width: 500px;height: 300px;float: left;}.one_cantent {width: 2500px;height: 400px;position: absolute;left: 0px;animation-name…

微軟Azure云之企業Exchange 2016部署12—配置負載平衡

上幾節我們把Exchange2016郵箱系統配置完畢了&#xff0c;本節我們來配置開通需要對外的端口&#xff0c;并對這些端口進行負載均衡配置&#xff0c;如下圖紅框所示&#xff1a;1.Exchange服務端口Exchange2016需要對外開通以下的端口&#xff0c;來對外提供不同的服務&#xf…

linux多線程求和_linux多線程pthread系列函數詳解

linux多線程pthread系列函數詳解(一)為什么要引入線程線程技術早在60年代就被提出&#xff0c;但是在80年代才真正使用到操作系統中。傳統UNIX也支持多線程概念&#xff0c;但在一個進程中只允許有一個線程&#xff0c;這樣多線程就意味著多進程。現在多線程技術已經被很多操作…

python獨立log示例_帶有Python示例的math.log()方法

python獨立log示例Python math.log()方法 (Python math.log() method) math.log() method is a library method of math module, it is used to get the natural logarithm of a given number to base e (by default). It accepts the number and a base (which an optional) a…

搭建云計算機win10,win10電腦做云服務器

彈性云服務器 ECS彈性云服務器(Elastic Cloud Server)是一種可隨時自助獲取、可彈性伸縮的云服務器&#xff0c;幫助用戶打造可靠、安全、靈活、高效的應用環境&#xff0c;確保服務持久穩定運行&#xff0c;提升運維效率三年低至5折&#xff0c;多種配置可選了解詳情Windows遠…

聚類分析在用戶行為中的實例_用戶關注行為數據分析過程詳解-描述統計+聚類...

以下是基于一小段用戶關注產品的行為數據分析過程詳細描述&#xff0c;各位老師如有不同意見或優化建議&#xff0c;還請不吝賜教。一、數據大致是這樣的(已經脫敏處理)二、數據預處理從年款提取出年限&#xff0c;從價格標識出價格區間&#xff0c;隨便寫一下SQL如下&#xff…