免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
jdk1.5新特性
"JDK1.5"的一個(gè)重要主題就是通過(guò)新增一些特性來(lái)簡(jiǎn)化開(kāi)發(fā),這些特性包括泛型,for-each 循環(huán),自動(dòng)裝包/拆包,枚舉,可變參數(shù), 靜態(tài)導(dǎo)入 。使用這些特性有助于我們編寫更加清晰,精悍,安全的代碼。
自動(dòng)裝箱/拆箱(Autoboxing/unboxing)
自動(dòng)裝箱:基本類型自動(dòng)轉(zhuǎn)換為包裝類
自動(dòng)拆包:包裝類自動(dòng)轉(zhuǎn)換為基本類型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.linjunlong.fun.jdk15;
import java.util.ArrayList;
/**
* 功能:自動(dòng)裝箱/拆箱
* 編譯器自動(dòng)進(jìn)行基本類型和對(duì)應(yīng)的包裝類型進(jìn)行轉(zhuǎn)換
* byte      <-->   Byte
* short     <-->   Short
* int       <-->   Integer
* long      <-->   Long
* float     <-->   Float
* double    <-->   Double
* char      <-->   Character
* boolean   <-->   Boolean
*
* @author linjunlong.com
*/
public class AutoBoxingOrUnBoxing {
/**
* 這里我們以Integer為實(shí)例
*/
public void jdk14() {
//在jdk1.4中,初始話一個(gè)值類型對(duì)應(yīng)的包裝類,你需要這么寫
Integer integer = new Integer(1);
int i = integer.intValue();
//如果你需要在數(shù)組中添加一個(gè)數(shù)值類型的話,你還需要把他轉(zhuǎn)成基礎(chǔ)類型
new ArrayList().add(new Integer(i));
}
public void jdk15() {
//在jdk1.5中你可以這么寫; int --> Integer
Integer integer = 1;
// Integer --> int
int  i = integer;
//這里你可以直接添加數(shù)值類型
new ArrayList().add(i);
}
public static void main(String[] args) {
/*
* 這里有一些有趣的特性,享元模式,
* 經(jīng)過(guò)裝箱和解箱的對(duì)象只要大小在-128到127之間(byte類型的范圍之間)
* 都會(huì)在jvm內(nèi)存的對(duì)象緩存池里形成記錄,下次有裝箱和解箱行為的對(duì)象,
* 都會(huì)直接指向這個(gè)緩存次里的對(duì)象
*/
Integer num1 = 20;
int num2 = new Integer(20);
System.out.println( num1 == num2); //@answer1
Integer int1 = new Integer(20);
Integer int2 = new Integer(20);
System.out.println( int1 == int2); //@answer2
System.out.println(num1 == int1); //@answer3
System.out.println(num1 == int1*1);//@answer4
//->answer1:true num1和num2都經(jīng)過(guò)了裝箱和解箱,都指向緩存池里的對(duì)象20
//->answer2:false int1和int2 沒(méi)經(jīng)過(guò)裝箱和解箱,2個(gè)是不同的對(duì)象,比較他們的引用地址肯定也不一樣
//->ansewr3:false 一個(gè)在的引用地址指向緩存池,一個(gè)是指向?qū)ο骩20]的引用地址2個(gè)也不相等
//->answer4:true 后面int1經(jīng)過(guò)了解箱然后*1運(yùn)算,然后又裝箱成Integer類型,所以他的引用地址也是緩存池里的地址
}
}
靜態(tài)導(dǎo)入(StaticImports)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.linjunlong.fun.jdk15;
import static java.lang.Integer.*; //導(dǎo)入了Integer的所有靜態(tài)方法和靜態(tài)屬性
import static java.lang.Math.max;  //導(dǎo)入了Math的max方法
/**
* 功能:靜態(tài)導(dǎo)入
* 你可以導(dǎo)入一些靜態(tài)方法和屬性來(lái)當(dāng)作類本身的方法和屬性一樣調(diào)用
*
* @author linjunlong.com
*/
public class StaticImports {
/**
* 這里我們以Integer的對(duì)象和方法為例
*/
public void jdk14() {
//在jdk1.4中你基本上只能這么寫
Math.max(Integer.MAX_VALUE, Integer.MIN_VALUE);
Integer.parseInt("12");
}
public void jdk15() {
//在jdk1.5中你只要導(dǎo)入了相應(yīng)的對(duì)象和方法你就可以直接寫了
max(MAX_VALUE, MIN_VALUE);
parseInt("12");
}
}
For-Each循環(huán)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.linjunlong.fun.jdk15;
/**
* 功能:ForEach循環(huán)
*
* @author linjunlong.com
*/
public class ForEach {
/**
* 例如在jdk1.4中,我們需要遍歷一個(gè)數(shù)組,或集合,用for循環(huán)的話,我們基本只能這么寫
*/
public static void jdk14(String[] strs) {
for(int i = 0,max = strs==null?0:strs.length
; i < max ; i ++) {
System.out.print(strs[i]);
}
}
public static void jdk15(String[] strs) {
//jdk1.5中我們可以
for(String s : strs) {
System.out.print(s);
}
}
public static void main(String[] args) {
String[] strs = {"a","b","c"};
ForEach.jdk14(strs);//abc
ForEach.jdk15(strs);//abc
}
}
可變長(zhǎng)參數(shù)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.linjunlong.fun.jdk15;
/**
* 功能:可變長(zhǎng)參數(shù)
* 1、方法的參數(shù)是可以變長(zhǎng)的
* 2、可變長(zhǎng)參數(shù)一定要是方法的最后一個(gè)參數(shù)
*
* @author linjunlong.com
*/
public class VariableArguments {
/**
* 例如在jdk14中,如果需要傳一堆字符串
* 這么寫
*/
public static void jdk14(String[] strs) {
for(int i = 0,max = strs==null?0:strs.length
; i < max ; i ++) {
System.out.print(strs[i]);
}
}
/**
* 在jdk1.5中,我們可以這么寫,注意String后面的3個(gè)點(diǎn)...
* @param strs
*/
public static void jdk15(String... strs) {
for(int i = 0,max = strs==null?0:strs.length
; i < max ; i ++) {
System.out.print(strs[i]);
}
}
public static void main(String[] args) {
String[] strs = {"a","b","c"};
VariableArguments.jdk14(strs);//abc
VariableArguments.jdk15(strs);//abc
//jdk15還可以
VariableArguments.jdk15("a","b","c");//abc
}
}
枚舉
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.linjunlong.fun.jdk15;
/**
* 功能:枚舉
* 枚舉類型,jdk1.5加入了一個(gè)新的關(guān)鍵字enmu,我們可以這樣來(lái)定義一個(gè)枚舉類型。
*
* @author linjunlong.com
*/
public class Enums {
//這里用了靜態(tài)內(nèi)部類,只是為了方便寫例子
public static enum Colors {
Red,
White,
Blue
}
public static void main(String[] args) {
//我們可以這樣使用枚舉
Enums.Colors myColors = Enums.Colors.Red;
System.out.println(myColors);
for(Enums.Colors c : Enums.Colors.values()) {
System.out.println(c);
}
}
}
泛型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.linjunlong.fun.jdk15;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 功能:泛型
* C++通過(guò)模板技術(shù)可以指定集合的元素類型,
* 而Java在1.5之前一直沒(méi)有相對(duì)應(yīng)的功能。
* 一個(gè)集合可以放任何類型的對(duì)象,
* 相應(yīng)地從集合里面拿對(duì)象的時(shí)候我們也不得不對(duì)他們進(jìn)行強(qiáng)制得類型轉(zhuǎn)換。
* 猛虎引入了泛型,它允許指定集合里元素的類型,
* 這樣你可以得到強(qiáng)類型在編譯時(shí)刻進(jìn)行類型檢查的好處。
*
* @author linjunlong.com
*/
public class Generic {
public static void jdk14(){
//相當(dāng)于15中的List<Object> list = new ArrayList<Object>();
List list = new ArrayList();
list.add("1");//我們現(xiàn)在在list中添加了一個(gè)字符串類型
String s = (String)list.get(0);//需要強(qiáng)轉(zhuǎn)
list.add(new Date());//我們還可以添加一個(gè)Date類型
}
public static void jdk15(){
List<String> list = new ArrayList<String>();
list.add("1");
String s = list.get(0);//不需要強(qiáng)轉(zhuǎn)
//list.add(new Date());//編譯不通過(guò)
}
}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JDK1.5新特性示例- 有魚則靈 - 新浪BLOG
Java Puzzlers(6)類庫(kù)之迷
Java程序員必備基礎(chǔ):JDK 5-15都有哪些經(jīng)典新特性
Scanner
java字符串分割
JDK1.5新特性
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服