« IBM 000-439 認證考題免費下載Killtest Adobe Flash 9A0-092 考題 »

Java學習-怎樣用Jvm處理Java數組

Publish:admin | Category:others | Commentary:0 | Trackback:0 | Browse:

做同樣壹件事情,為什麽采用兩種風格迥異的風格呢?況且,Java中的數組其實是完備(full- fledged)的對象,直接暴露成員變量,可能不是壹種很OO的風格。那麽,設計Java的那幫天才為什麽這麽做呢?  記得vamcily 曾問我:“為什麽獲取數組的長度用.length(成員變量的形式),而獲取String的長度用.length()(成員方法的形式)?”
  我當時壹聽,覺得問得很有道理。做同樣壹件事情,為什麽采用兩種風格迥異的風格呢?況且,Java中的數組其實是完備(full- fledged)的對象,直接暴露成員變量,可能不是壹種很OO的風格。那麽,設計Java的那幫天才為什麽這麽做呢?
  帶著這個疑問,我查閱了壹些資料,主要是關於“JVM是如何處理數組”的。
  數組對象的類是什麽?
  既然數組都是對象,那麽數組的類究竟是什麽呢?當然不是java.util.Arrays啦!我們以int壹維數組為例,看看究竟。
  public class Main {
  public static void main(String args[]){
  int a[] = new int[10]; Class clazz = a.getClass();
  System.out.println(clazz.getName());
  }
  }
  在SUN JDK 1.6上運行上述代碼,輸出為:
  [I
  看起來數組的類很奇怪,非但不屬於任何包,而且名稱還不是合法的標識符(identifier)。具體的命名規則[1]可以參見 java.lang.Class.getName()的javadoc。簡單的說,數組的類名由若幹個'['和數組元素類型的內部名稱組成,'['的數目 代表了數組的維度。
  具有相同類型元素和相同維度的數組,屬於同壹個類。如果兩個數組的元素類型相同,但維度不同,那麽它們也屬於不同的類。如果兩個數組的元素類型 和維度均相同,但長度不同,那麽它們還是屬於同壹個類。

 

tagTags:Jvm  Java  數組  

Post comment:

◎welcome to give out your point。