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

JDK1.5封箱及拆箱功能操作時注意的問題

開發 后端
在JDK1.5下封箱及拆箱功能操作時要注意什么樣的問題呢?本文將會給你介紹JDK1.5下封箱及拆箱功能操作時會遇到的問題。

我們知道Java中所有到的類型要么就是引用類型和要么就是原始數據類型,其中原始數據類型有其相應的包裹類(Wrapper Class),包括:Byte(byte), Short(short), Integer(int), Long(long), Float(float), Double(double), Boolean(bool), Char(char)。

我們將原始數據類型及其包裹類間的互相轉換稱為封箱及拆箱操作。

Generics為我們提供了自動封拆箱的功能,記住在設定泛型的類型參數(type parameter時,只能使用引用類型,絕對不能使用原始數據類型。我們以以下的示例來說明:

Example1.2.1  

  1. public int sum(List ints) {     
  2. int s = 0;     
  3. for(int n : ints)  
  4.  {s += n;}    
  5.  return s;    
  6.  } 

在該例子,我們看到在遍歷時,當ints把值綁定到n時,進行了拆箱操作。

Example1.2.2

  1. public Integer sumInteger(List ints) {    
  2.  Integer s = 0;   
  3.   for(Integer n : ints) {   
  4.  s += n;}     
  5.  return s;     

在這里我們看到在進行s += n這一步時,反復做了拆箱及封箱操作,我們看到雖然做的是同一件事,但在JVM中執行的效率相差幅度在60%左右。

在討論封,拆箱時我們要留意一下以下兩個問題:

(1)==號在原始及引用類型間的定義是不同的,我們在處理比較相等問題時要特別留意封,拆箱帶來的問題:

Example1.2.3

  1. List bigger = new ArrayList(200300400);     
  2. Assert sumInteger(bigger) == sum(bigger);     
  3. Assert sumInteger(bigger) != sumInteger(bigger) //not recommended 

我們看到在***段比較時,對Integer進行了拆箱的操作,然后再和int比較,則結果一定是900.第二個比較,因為兩者都為Integer,但它們并不是同一對象的引用,所以自然就不相等。

我們推薦使用==號比較int類型,用equals方法去比較Integer類型間的相等性。

(2)當對byte, boolean,int(-127 - +128), short(-127 - +128), char(\u0000 - \u007f)在封箱時是必須進行緩存的,而對其它值,也是被允許進行緩存。

Example1.2.4

  1. List smalls = new List(1,2,3);     
  2. Assert sumInteger(smaller) == sum(smaller);     
  3. Assert sumInteger(smaller) == sumInteger(smaller) //not recommended 

因為總和的值為6,所以封箱后的值被緩存起來,下次封箱的值也為6時,就會調用緩存中的值,所以我們看到第二個判斷為相等。通常情況下,并沒有指定封箱兩次相同的值會返回相同或不同對象。我們反對用==號進行引用對象的比較,而是使用equals方法來進行判斷對象間的相等情況。

以上就是JDK1.5封箱及拆箱功能操作時注意的問題,希望這樣的介紹對你有所幫助。
 

【編輯推薦】

  1. Java學習筆記-JSF
  2. JDK的概念、組成及JDK常用包
  3. JDK1.4在Windows下的環境配置
  4. JDK1.6在LINUX下的安裝配置
  5. JDK1.5中新的語言特征淺析
責任編輯:仲衡 來源: 網易博客
相關推薦

2015-09-02 10:12:54

Java自動裝箱拆箱

2009-08-26 03:39:00

C#裝箱和拆箱

2009-07-07 18:06:14

JDK1.5枚舉類型

2009-07-08 16:02:49

JDK1.5String

2012-03-26 11:32:45

Java

2009-07-07 13:02:29

JDK1.5

2009-08-28 11:22:11

C#裝箱和拆箱

2021-09-06 14:30:34

C#裝箱拆箱

2010-02-23 14:35:48

CentOS vsft

2020-11-02 13:06:42

Java裝箱拆箱

2009-08-06 15:40:11

C#裝箱和拆箱

2009-07-08 18:06:39

JDK1.5系統性能監測

2009-09-01 17:51:47

C#拆箱C#裝箱

2009-10-22 19:11:25

CLR Via C#教

2021-02-28 21:47:51

Java語法糖算數

2017-11-07 21:05:43

機房配電柜配電箱

2010-01-25 14:04:17

Android Wid

2024-06-18 07:50:43

2025-01-20 12:48:48

2012-06-13 10:43:39

英特爾酷睿博銳
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产99久久精品 | 伊人一区| 成人午夜免费视频 | 成人aaa视频 | 国产精品永久久久久久久www | 精品国产一级 | 天天干天天爱天天操 | 91精品国产色综合久久 | 欧美日韩在线一区二区三区 | 中文字幕成人 | 91看片在线 | 91免费观看视频 | 国产精品成人一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 亚洲天堂男人的天堂 | 欧美一区二区久久 | 国产精品久久午夜夜伦鲁鲁 | 日本成人在线免费视频 | va在线| 激情欧美一区二区三区中文字幕 | 亚洲成人av在线播放 | 亚洲在线一区二区 | 日韩福利一区 | 一区二区在线看 | 国产精品国产成人国产三级 | 久久精品国产免费 | 欧美a级成人淫片免费看 | 国产成都精品91一区二区三 | 精品久久网 | 影音先锋中文字幕在线观看 | 亚洲一区中文字幕在线观看 | 欧美在线观看免费观看视频 | 日韩av手机在线观看 | 国产午夜av片 | 天天操天天射综合 | 99精品免费在线观看 | 欧美成视频 | 毛片a级毛片免费播放100 | 人人玩人人添人人澡欧美 | 超碰精品在线 | 羞羞视频网站免费看 |