星星之火,可以燎原

          開創未來,成就自我
          posts - 1, comments - 0, trackbacks - 0, articles - 1

          Java學習筆記(一)

          Posted on 2006-11-19 22:11 星星之火 閱讀(117) 評論(0)  編輯  收藏 所屬分類: Java

          ??? 對于第一章,我覺得主要是了解到了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的一個子類。在類的定義中,應該包含變量的聲明和類中方法的實現。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 巫山县| 灌阳县| 六枝特区| 麻阳| 宜川县| 松原市| 天门市| 黄大仙区| 静乐县| 偏关县| 密山市| 怀仁县| 兴城市| 宁蒗| 北流市| 南阳市| 辽宁省| 蒲江县| 奉化市| 营山县| 龙岩市| 中西区| 福州市| 喀什市| 桦川县| 仁怀市| 武安市| 沁阳市| 泽普县| 宁晋县| 利辛县| 沾化县| 洛南县| 祁连县| 荃湾区| 河池市| 贵州省| 湖口县| 东阳市| 桦甸市| 阿鲁科尔沁旗|