2、AWT和Swing的區別java
AWT是AbstractWindowToolKit(抽象窗口工具包)的縮寫,這個工具包提供了一套與本地圖形界面進行交互的接口。AWT中的圖形函數與操做系統所提供的圖形函數之間有着一一對應的關係,咱們把它稱爲peers。也就是說,當咱們利用AWT來構件圖形用戶界面的時候,咱們其實是在利用操做系統所提供的圖形庫。因爲不一樣操做系統的圖形庫所提供的功能是不同的,在一個平臺上存在的功能在另一個平臺上則可能不存在。爲了實現Java語言所宣稱的"一次編譯,處處運行"的概念,AWT不得不經過犧牲功能來實現其平臺無關性,也就是說,AWT所提供的圖形功能是各類通用型操做系統所提供的圖形功能的交集。因爲AWT是依靠本地方法來實現其功能的,咱們一般把AWT控件稱爲重量級控件。函數
Swing是在AWT的基礎上構建的一套新的圖形界面系統,它提供了AWT所可以提供的全部功能,而且用純粹的Java代碼對AWT的功能進行了大幅度的擴充。例如說並非全部的操做系統都提供了對樹形控件的支持,Swing利用了AWT中所提供的基本做圖方法對樹形控件進行模擬。因爲Swing控件是用100%的Java代碼來實現的,所以在一個平臺上設計的樹形控件能夠在其餘平臺上使用。因爲在Swing中沒有使用本地方法來實現圖形功能,咱們一般把Swing控件稱爲輕量級控件。工具
AWT和Swing之間的基本區別:AWT是基於本地方法的C/C++程序,其運行速度比較快;Swing是基於AWT的Java程序,其運行速度比較慢。對於一個嵌入式應用來講,目標平臺的硬件資源每每很是有限,而應用程序的運行速度又是項目中相當重要的因素。在這種矛盾的狀況下,簡單而高效的AWT固然成了嵌入式Java的第一選擇。而在普通的基於PC或者是工做站的標準Java應用中,硬件資源對應用程序所形成的限制每每不是項目中的關鍵因素,因此在標準版的Java中則提倡使用Swing,也就是經過犧牲速度來實現應用程序的功能。操作系統
簡要的講:設計
AWT是抽象窗口組件工具包,是java最先的用於編寫圖形節目應用程序的開發包。接口
Swing是爲了解決AWT存在的問題而新開發的包,它以AWT爲基礎的。資源