??? 對于第一章,我覺得主要是了解到了Java的一些特點,知道了Java是以“面向對象(O-O)”為基礎的一門語言。
??? 一、主要的特點有:
??? 01、簡單性。Java略去了“運算符重載”、多重繼承等概念。
??? 02、面向對象。
??? 03、分布性。Java是面向網絡的語言。可以通過自身的的類庫可以處理TCP/IP協議等等。
??? 04、魯棒性。這個性能的意思主要是說Java這門語言的自我糾錯能力很強。
??? 05、安全性。在Java中,去掉了對指針的支持,一切對內存的訪問都必須通過對象的實例變量來實現,這樣就防止了人為使用諸如“特洛伊”木馬等手段來訪問對象的私有成員。
??? 06、體系結構中立。主要是說Java編譯出來的軟件可以在任何的平臺上面運行。
??? 07、可移植性。
??? 08、解釋執行。Java字節碼本身就可以對自己進行解釋。
??? 09、高性能。
??? 10、多線程。多線程機制使應用程序能夠并行執行,并且可以保證準確性,從而提高了效率。
??? 11、動態性。對于在Java中使用多重繼承。Java使用的方式是通過接口來支持,這樣的靈活性更高。
??? 二、下面來說一說Java Applet這個東東。
??? 相信很多初次接觸Java的朋友來說,根本就不知道Java Applet到底是一個什么東東。不要急,其實簡單的說,Java Applet就是Java的一個小的應用程序。上面我們已經看到了Java的一些特點,而且Java Applet又是基于Java語言的,所以說,Java Applet是動態、安全、跨平臺的網絡應用程序。
??? 三、Java包含了豐富的類、庫。
??? Java之所以要提供大量的類,目的就是為了滿足網絡化、多線程和面向對象系統的需要。
??? 四、我們來看看Java、C、C++之間的一些區別和聯系。
??? 對于變量聲明、參數傳遞、操作符、流控制等,Java使用了和C、C++一樣的習慣。但同時也摒棄了后兩者中一些不合理的東西。
??? 1、全局變量
??? Java中對于全局變量進行了更好的封裝,這樣可以有效的避免的在C或者C++中因為在類外定義全局變量而引起的系統崩潰。
??? 2、goto語句
??? Java不支持goto語句,是通過其他的例外的處理語句來代理goto語句,比如:try、catch、final等,這樣可以使程序的可讀性和結構化更加的合理。
??? 3、指針
??? 在C和C++中,指針是最靈活的數據類型,甚至可以說指針就是C或者C++的靈魂,但是在指針靈活的同時,它也是C和C++中最容易產生錯誤的的數據類型。
??? 4、內存管理
??? 在C中。對于內存的分配和釋放,用的是:malloc()和free()兩個庫函數來實現的。
??? 在C++中。對于內存的分配和釋放,用的是:new和delet兩個運算符來實現的。
??? 在Java中。對于內存的管理,用的是:new。Java會在程序執行的過程中自動的收集垃圾文件,避免了因為內存的管理不當而引起的系統崩潰。
??? 5、數據類型的支持
??? 在Java中,各個數據類型在內存占用的空間永遠都是一樣的,所以這個就保證了Java的平臺無關性。
??? 6、類型轉換
??? 在Java中,要進行數據類型的轉換的時候,Java會先進行數據類型相容性檢查,以防止不安全的轉換,而C和C++則是通過指針來進行轉換的,這樣很容易帶來不安全性。
??? 7、頭文件
??? Java不支持頭文件。
??? 8、結構體和聯合體
??? Java中不包含結構體和聯合體,這些東西統統包含在類里面。
??? 9、預處理
??? 在Java中不支持宏,通過關鍵字“final”來聲明一個常量。
??? 五、接下來用具體的例子來學習一下Java這門語言。
??? 例1-1:
??? public class HelloWorldApp???????????????????????? //an application
??? {
??????? public static void main ( String args [ ] )
??????? {
??????????? System.out.println ( " Hello World ! " ) ;
??????? }
??? }
??? 本程序的輸出結果是:Hello World !
??? 在這個程序中,首先是使用了保留字class來聲明一個新的類,且名字是HelloWorldApp。它是一個公共的類(public)。定義了一個main方法,并且設置成public,在Java編程中,在每一個類里面都可以有許多個方法,但是對于public和main方法,則只能有一個。static說明了main是一個類方法,并且作為一個應用程序來說,類中的main方法都必須像上面的這個格式來定義。在Java解釋器沒有生成任何實例的情況下,是以main作為程序入口的。在main方法中的“System.out.println ( ... )”和C語言中的“printf ( ... )”以及C++語言中的“cout<<”的作用是一樣的,都是作為輸出使用。還有就是“//”后面的內容是作為程序解釋使用。
??? 現在可以運行該程序了。
??? 首先,可以把它放到一個叫做“HelloWorldApp.java”的文件夾中,這里,文件名應該和類名一樣,因為Java解釋器要求公共類必須放在與其同名的文件中。
??? 然后,就可以進行編譯了:
??? C:\>javac HelloWorldApp.java? (回車)
??? 編譯的結果是生成字節碼文件HelloWorldApp.class。
??? 最后,用Java解釋器來運行該字節碼文件:
??? C:\>java HelloWorldApp
??? 這樣,結果就在屏幕上面顯示出來了,內容是:“Hello World !”。
??? 下面,我們再來看一個例子,例1-2:
??? import? java.awr.* ;
??? import? java.applet.* ;
??? public? class? HelloWorldApplet? extends? Applet
??? {
????????? public? void? paint ( Graphics? g )???????????? //an? applet
????????? {
??????????????? g.drawString ( " Hello World ! " , 20 , 20 ) ;
????????? }
??? }
??? 這是一個簡單的Applet(小應用程序)。
??? 首先,用import語句輸入java.awr和java.applet下所有的包,使得該程序可能使用這些包中所定義的類,它類似于C和C++語言中的#include語句。
??? 然后,聲明一個公共類HelloWorldApplet,并且用extends指明它是Applet的子類。在這個類中重寫了父類Applet的paint()方法,其中參數g為Graphics類。在paint方法中調用g的方法drawString(),表示在坐標 ( 20 , 20 ) 處輸出字符串“Hello World !”。
??? 要注意的是:這個坐標是用象素點來表示的,不是用厘米或者毫米來表示的。
??? 下面就開始運行。由于這個程序沒有實現main方法,這是Applet與應用程序Application的區別之一。為了運行該程序,我們還是要把踏放到文件HelloWorldApplet.java中去,再進行編譯。
??? C:\>javac HelloWorldApplet.java
??? 這樣,我們得到一個字節碼文件HelloWorldApplet.class。由于Applet中沒有main方法作為java編譯器的入口,所以我們必須編寫一個HTML文件,來把該文件嵌入其中,然后用appletviewer來運行,或在支持java的瀏覽器上面來運行。它的HTML文件如下:
??? <HTML>
????????? <HEAD>
??????????????? <TITLE> An Applet </TITLE>
????????? </HEAD>
????????? <BODY>
??????????????? <applet code="HelloWorldApplet.class" width=200 height=40>
??????????????? </applet>
????????? </BODY>
??? </HTML>
??? 其中,<applet>標記用來啟動HelloWorldApplet,code指明字節碼所在的文件,width和height指明applet所占的大小,我們把這個HTML文件存入Example.html,然后運行:
??? C:\>appletviewer Example.html
??? 這時,屏幕上面就會彈出一個窗口,其中顯示 Hello World !
??? 從上面的例子可以看出來,Java程序是由類構成的,對于一個應用程序來說,必須有一個類中定義了main方法的,而對于applet來說,它必須作為Applet的一個子類。在類的定義中,應該包含變量的聲明和類中方法的實現。