jdk類庫原始碼分析-各個包
這幾天分析了幾個類的原始碼,有了很多的思路,對於一些演算法和資料結構有了一定了解。但是,我對於各個類包還是迷糊,這裡補充下,讓大家有個清晰的認識。
這裡我主要以jdk1.6版本為例,現在版本已經是1.9了,但是實際開發的時候有很多問題暫時不說。
Java類庫概念:Java的應用程式介面以包的形式來組織,每個包提供了大量的相關類、介面和異常處理類,這些包的集合就是Java的類庫。
包名以 Java 開始的包是 Java 核心包 (Java Core Package) ;
包名以 Javax 開始的包是 Java 擴充套件包 (Java Extension Package) ,例如 javax.swing 包;
常用的 Java 核心包 (Java Core Package)
1. java.lang Java 程式語言的基本類庫,在使用 Java 時,除了 java.lang 外,其他的包都需要 import 語句引入之後才能使用。
- java.applet 建立 applet 需要的所有類
- java.awt 建立使用者介面以及繪製和管理圖形、影象的類
- java.io 通過資料流、物件序列以及檔案系統實現的系統輸入、輸出
- java.NET 用於實現網路通訊應用的所有類
- java.util 集合類、時間處理模式、日期時間工具等各類常用工具包
其它還有 - java.sql 訪問和處理來自於 Java 標準資料來源資料的類
- java.test 以一種獨立於自然語言的方式處理文字、日期、數字和訊息的類和介面
- java.security 設計網路安全方案需要的一些類
- java.beans 開發 Java Beans 需要的所有類
- java.math 簡明的整數算術以及十進位制算術的基本函式
- java.rmi 與遠端方法呼叫相關的所有類
常用的 Java 擴充套件包 (Java Extension Package) - javax.accessibility 定義了使用者介面元件之間相互訪問的一種機制
- javax.naming.* 為命名服務提供了一系列類和介面
- javax.swing.* 提供了一系列輕量級的使用者介面元件,是目前 Java 使用者介面常用的包
其中最重要的是java.lang和java.util。
java.lang 包
這個包稱為 java 語言包,是由編譯器自動引入的。程式中不必用 import 語句就可以使用。它所包含的類和介面對所有實際的 Java 程式都是必要的。 - object 類
- 數學類 (Math)
- 資料型別類
- 執行緒類
- 字串類 (String 類和 StringBuffer 類 )
- 系統及執行類 (System 類和 Runtime 類 )
- 錯誤和異常處理類 (Throwable 、 Exception 、 Error)
- 過程類 (process)
java.util 包 - 日期類、日曆類( Data 、 Calendar 、 GregorianCalendar )
- 隨機數類( Random )
- 位運算類( BitSet )
- 向量類( Vector )
- 資料結構類( Stack )
- 散列表類( Hashtable )
- StringTokenizer類
1.java.lang包 java.lang包 是Java中最常用的包,程式不需要注入,就可以使用該包中的類,利用包中的類可以設計最基本的Java程式。
2.java.awt包 java.awt包中的類提供了圖形介面的建立方法,包括按鈕、文字框、列表框、容器、字型、顏色和圖形等元素的建立和設定。
3.javax.swing包 javax.swing包為Java編寫的圖形介面提供建立類,利用javax.swing包的類建立的介面元素可調整為各種作業系統的介面風格,支援各種操作平臺的介面的開發。此外,swing包還提供了樹形控制元件、標籤頁控制元件、表格控制元件的類。Java.swing包中的很多類都是從java.awt包的類繼承而來,Java保留使用java.awt包是為了保持技術的相容性,但應儘量地使用javax.swing包來開發程式介面。
4.java.io包 java.io包的類提供資料流方式的系統輸入輸出控制、檔案和物件的讀寫序列化處理,比較常用的類包括:BufferInputStream、BufferOutputStream、BufferedReader、BufferedWriter、DataInputStream、DataOutputStream、FileInputStream和FileOutputStream等。
5.java.util包 java.util包提供時間日期、隨機數以及列表、集合、雜湊表和堆疊等建立複雜資料結構的類,比較常見的類有:Date、Timer、Random和LinkedList等。
6.java.net包 java.net包提供網路開發的支援,包括封裝了Socket套接字功能的伺服器Serversocket類、客戶端Socket類以及訪問網際網路上的各種資源的URL類。
7.java.applet包 java.applet包只有一個Applet類,用於開發網頁上的Applet小程式,使網頁具有更強的互動能力以及多媒體、網路功能。
這七個包中的類庫都是java程式語言中最基本最常用的,同學們一定要熟練掌握。這樣才能在java程式語言學習中提高效率,事半功倍。