置頂隨筆

          ???????? Java自1996年正式發(fā)布以來(lái),經(jīng)歷了初生、成長(zhǎng)和壯大的階段,現(xiàn)在已經(jīng)成為IT領(lǐng)域里的主流編程語(yǔ)言。
          ??????? Java發(fā)展歷史

          ????????????????????? 1995 Java語(yǔ)言誕生。
          ????????????????????? 1996 JDK1.0發(fā)布,10個(gè)最主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中支持Java技術(shù)。
          ????????????????????? 1997 JDK1.1發(fā)布。
          ???????????????????????1998 JDK1.1下載量超過(guò)200萬(wàn)次,JDK1.2(稱Java2)發(fā)布,JFC/Swing技術(shù)發(fā)布, JFC/Swing被下載了50多萬(wàn)次。
          ????????????????????? 1999 Java被分成J2SE、J2EE 和J2ME,JSP/Servlet技術(shù)誕生。
          ?????????????????????? 2000 JDK1.3發(fā)布, JDK1.4發(fā)布。
          ?????????????????????? 2001 Nokia公司宣布到2003年將出售1億部支持Java的手機(jī),J2EE1.3發(fā)布
          ?????????????????????? 2002 J2SE1.4發(fā)布,自此Java的計(jì)算能力有了大幅度提升。J2EE SDK的下載量達(dá)到200萬(wàn)次。
          ?????????????????????? 2003 5.5億臺(tái)桌面機(jī)上運(yùn)行Java程序,75%的開(kāi)發(fā)人員將Java作為首要開(kāi)發(fā)工具。
          ?????????????????????? 2004 J2SE1.5發(fā)布,這是Java語(yǔ)言的發(fā)展史上的又一里程碑事件。為了表示這個(gè)版本的重要性,J2SE1.5更名為J2SE5.0。?
          ???????????????????????2005 JavaOne大會(huì)召開(kāi),Sun公司公開(kāi)Java SE6。此時(shí),Java的各種版本被更名,取消其中的數(shù)字"2":J2EE更名為Java EE, J2SE更名為Java SE,J2ME更名為Java ME

          ???????C#語(yǔ)言是Microsoft近幾年新推出的一種純面向?qū)ο蟮恼Z(yǔ)言。在1996年以前把重點(diǎn)主要放在了C/S架構(gòu)的系統(tǒng)。但是隨著互聯(lián)網(wǎng)的出現(xiàn)和發(fā)展,B/S架構(gòu)系統(tǒng)逐步升溫,Microsoft也看到這一點(diǎn),但是SUN公司的J2EE已經(jīng)在這一方面占領(lǐng)了市場(chǎng),所以Microsoft公司自從1996年開(kāi)始由著名架構(gòu)師
          Anders Hejlsberg 領(lǐng)導(dǎo)C#語(yǔ)言的開(kāi)發(fā)工作,并在微軟 .NET 框架中扮演了重要的角色。直到Microsoft正式發(fā)布了 Microsoft Visual Studio .NET 2003 ,現(xiàn)在發(fā)展到.NET 20005,我們可以看到Microsoft公司的野心,想吞并整個(gè)市場(chǎng),打敗JAVA。
          ???? Java之所以直到現(xiàn)在沒(méi)有Microsoft打垮,應(yīng)用如此廣泛是因?yàn)镴ava具有多方面的優(yōu)勢(shì)。其特點(diǎn)如下:
          (1)面向?qū)ο蟆ava自誕生之時(shí)就設(shè)計(jì)成面向?qū)ο蟮恼Z(yǔ)言,而C++語(yǔ)言是一種強(qiáng)制面向?qū)ο蟮恼Z(yǔ)言。面向?qū)ο罂梢哉f(shuō)是Java最重要的特性,它不支持類似C語(yǔ)言那樣的面向過(guò)程的程序設(shè)計(jì)技術(shù)。Java支持靜態(tài)和動(dòng)態(tài)風(fēng)格的代碼重用。
          (2)跨平臺(tái)。對(duì)于Java程序,不管是Windows平臺(tái)還是Unix平臺(tái)或是其他平臺(tái),它都適用。Java編輯器把Java源程序編譯成與體系結(jié)構(gòu)無(wú)關(guān)的字節(jié)碼指令,只要安裝了Java運(yùn)行系統(tǒng),Java程序就可在任意的處理器上運(yùn)行。這些字節(jié)碼指令由Java虛擬機(jī)來(lái)執(zhí)行,Java虛擬機(jī)的解釋器得到字節(jié)碼后,對(duì)它進(jìn)行轉(zhuǎn)換,使之能夠在不同的平臺(tái)運(yùn)行。
          (3)直接支持分布式的網(wǎng)絡(luò)應(yīng)用。除了支持基本的語(yǔ)言功能,Java核心類庫(kù)還包括一個(gè)支持HTTP、SMTP和FTP等基于TCP/IP協(xié)議的類庫(kù)。因此,Java應(yīng)用程序可憑借URL打開(kāi)并訪問(wèn)網(wǎng)絡(luò)上的對(duì)象,其訪問(wèn)方式與訪問(wèn)本地文件系統(tǒng)幾乎完全相同。在Java出現(xiàn)以前,為分布式環(huán)境尤其是Internet提供動(dòng)態(tài)的內(nèi)容無(wú)疑是一項(xiàng)非常宏偉、難以想象的任務(wù),但Java的語(yǔ)言特性卻使我們很容易地達(dá)到了這個(gè)目標(biāo)。
          (4)安全性和健壯性。Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤,類型檢查幫助檢查出許多開(kāi)發(fā)早期出現(xiàn)的錯(cuò)誤。Java 支持自動(dòng)內(nèi)存管理,這不但讓程序員減輕許多負(fù)擔(dān),也減少程序員犯錯(cuò)的機(jī)會(huì)。Java自己操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。Java還能夠檢測(cè)數(shù)組邊界,避免了覆蓋數(shù)據(jù)的可能。在Java語(yǔ)言里,指針和釋放內(nèi)存等功能均被拋棄,從而避免了非法內(nèi)存操作的危險(xiǎn)。
          ?? C#語(yǔ)言比Java出現(xiàn)大概晚了4-5年的時(shí)間,所以C#語(yǔ)言在設(shè)計(jì)上吸取了Java和C++的優(yōu)點(diǎn)。我們從一下幾個(gè)方面討論一下他們之間的區(qū)別和聯(lián)系:
          ?? 1) 基本語(yǔ)法:
          ????????????? Java語(yǔ)言的基本的數(shù)據(jù)類型和C#一樣,但是Java把每種基本數(shù)據(jù)類型都對(duì)應(yīng)一個(gè)Java封裝類(String 特殊),所有的類都有一個(gè)父類Object,,Object是Java的總根。而C#語(yǔ)言每種基本數(shù)據(jù)類型的父類都是Object,Object也是C#的總根。???
          ?????????????? Java中的常量是以final關(guān)鍵字進(jìn)行聲明,C#中是以const關(guān)鍵字進(jìn)行聲明。
          ?????????????? Java中的運(yùn)算符,表達(dá)式,數(shù)組和C#是一樣的。
          ?????????????? Java中的選擇語(yǔ)句有if.......else ,Switch case兩種,C#也是存在這兩種,但是Switch case語(yǔ)句比Java 的功能增強(qiáng)了?。
          ??????????????? Java,C#中的循環(huán)語(yǔ)句主要有 while,do.....while,for 循環(huán),C#中還有foreach循環(huán),Java在1.5中新增了for in循環(huán)。
          ?????????????? Java中沒(méi)有結(jié)構(gòu),在 1.5中新增了枚舉,而C#有結(jié)構(gòu)和枚舉。
          2)? ?面向?qū)ο螅?br />????????????? Java和C#都是純面向?qū)ο蟮恼Z(yǔ)言,我們都知道面向?qū)ο髱状筇攸c(diǎn):封裝,繼承,多態(tài)。
          ???????? 封裝:封裝是一種把代碼和代碼所操作的數(shù)據(jù)捆綁在一起,使這兩者不受外界干擾和誤用的機(jī)制.封裝可被理解為一種用做保護(hù)的包裝器,以防止代碼和數(shù)據(jù)被包裝器外部所定義的其他代碼任意訪問(wèn).對(duì)包裝器內(nèi)部代碼與數(shù)據(jù)的訪問(wèn)通過(guò)一個(gè)明確定義的接口來(lái)控制.封裝代碼的好處是每個(gè)人都知道怎樣訪問(wèn)代碼,進(jìn)而無(wú)需考慮實(shí)現(xiàn)細(xì)節(jié)就能直接使用它,同時(shí)不用擔(dān)心不可預(yù)料的副作用.
          ??????? 繼承:繼承是指一個(gè)對(duì)象從另一個(gè)對(duì)象中獲得屬性的過(guò)程.是面向?qū)ο蟪绦蛟O(shè)計(jì)的三大原則之二。
          ?????? 多態(tài):同一方法在不同的子類中有同一種實(shí)現(xiàn)。

          ?????
          ?????? 在JAVA中,最基本的封裝單元是類,和類同一級(jí)別的還有接口,說(shuō)道這里我們應(yīng)該從JAVA的設(shè)計(jì)說(shuō)起,Java語(yǔ)言是為小型的設(shè)備設(shè)計(jì),最初是應(yīng)用于機(jī)頂盒,所以Java覺(jué)得用類就足夠了。

          ?????? 在C#中,最基本的封裝單元是類,和類同一級(jí)別的還有接口,事件,委托。因?yàn)镃#從設(shè)計(jì)的出發(fā)點(diǎn)就是PC系統(tǒng),所以C#,還引入了命名空間(namespace),一個(gè)namespace可以包括很多的Class。
          ????????因?yàn)镴ava和C#從設(shè)計(jì)的出發(fā)點(diǎn)不同,所以二者之間有很多區(qū)別。從現(xiàn)在的發(fā)展看來(lái),我覺(jué)得C#的設(shè)計(jì)要比Java好。
          ??????? 先寫(xiě)到這兒吧,有時(shí)間說(shuō)一下C#的事件和委托,把Java和C#事件對(duì)比一下。
          ??????? 以上是個(gè)人總結(jié),如有錯(cuò)誤之處請(qǐng)大家指正。

          posted @ 2006-08-25 01:03 小丁 閱讀(961) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題  
          主站蜘蛛池模板: 婺源县| 类乌齐县| 东乡| 惠安县| 黄冈市| 罗平县| 即墨市| 临泽县| 东台市| 华坪县| 斗六市| 杭州市| 万山特区| 郎溪县| 普定县| 龙州县| 广东省| 开江县| 八宿县| 揭阳市| 信丰县| 调兵山市| 虹口区| 大名县| 丰都县| 冀州市| 汉中市| 大渡口区| 赤壁市| 济南市| 德钦县| 金门县| 邛崃市| 辽阳市| 顺平县| 东丰县| 上虞市| 郑州市| 喜德县| 大荔县| 沾益县|