你還太年輕

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供平昌網(wǎng)站建設(shè)、平昌做網(wǎng)站、平昌網(wǎng)站設(shè)計(jì)、平昌網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、平昌企業(yè)網(wǎng)站模板建站服務(wù),十余年平昌做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
Java只是一種高級編程語言,他是沒有辦法叢伍直接操作硬件的,之所以能控制是因?yàn)樗\(yùn)行在Linux之上,Linux是硬件和java的橋梁 ,最終是Linux操作的猛散
Linux為什么可以?那就去學(xué)一下吧 我也不誤導(dǎo)滲知或你了
Java的起源
計(jì)算機(jī)發(fā)展需要2哥基本因素的驅(qū)動(dòng):
適應(yīng)不斷變化的環(huán)境和并襲需求;
編程藝術(shù)的不斷完善與提高
Java的由來
語法繼承了c,面向?qū)ο蟮奶匦岳^承了c++,而且Java語言的產(chǎn)生與過去幾十年計(jì)算機(jī)編程語言的改進(jìn)和發(fā)展密切相關(guān),語言設(shè)計(jì)的每一次革新是因?yàn)榕f的語言無法解決某個(gè)基本問題所引起的,Java也不例外。
C
替代匯編語言,開發(fā)系統(tǒng)程序 特性:易用性和功能 安全性和效率 穩(wěn)定性和可擴(kuò)展性FORTRAN:科學(xué)計(jì)算應(yīng)用方面可以編寫出相當(dāng)高效的程序,但它不適合編寫系統(tǒng)程序,BASIC雖然易學(xué),但功能不夠強(qiáng)大,并且談不上結(jié)構(gòu)化,應(yīng)用到大程序令人懷疑,匯編語言雖能寫出高效率的程序,但是學(xué)習(xí)或者高效地使用不容易,而且調(diào)試匯編攔局程序也相當(dāng)困難。
早期設(shè)計(jì)的計(jì)算機(jī)語言(如BASIC、COBOL、FORTRAN)沒有考慮結(jié)構(gòu)化,使用GOTO語句,這樣做的結(jié)果是一大堆混亂的跳轉(zhuǎn)語句和條件分支語句使得程序幾乎不可能被讀懂。Pascal雖然是結(jié)構(gòu)化語言,但它的設(shè)計(jì)效率較低,而且缺少幾個(gè)必需的特性,因而無法在大的編程范圍內(nèi)使用。20世紀(jì)70年代初期,計(jì)算機(jī)革命開始,使用早期語言進(jìn)行軟件開發(fā)無法滿足這種需求,當(dāng)然硬件資源充足,是促使c誕生的一個(gè)也許最重要的因素。
Dennis Ritchie在運(yùn)行UNIX操作系統(tǒng)的DECPDP-11上發(fā)明并首次實(shí)現(xiàn)了c,而Martin Richards設(shè)計(jì)的BCPL語言導(dǎo)致了c語言開發(fā)成功受BCPL影響,由Brian Kernighan 發(fā)明的B語言也逐漸向c語言發(fā)展演變,在此后的許多年里,Brian Kernighan和Dennis Ritchie編寫的The C Programming Language(Prentice-Hall,1978)被認(rèn)為是事實(shí)上的C語言標(biāo)準(zhǔn),89年12月美國國家標(biāo)準(zhǔn)化組織(ANSI)制定了C語言的標(biāo)準(zhǔn)。
C語言的特性由實(shí)際運(yùn)用該語言的人們不斷提煉、測試、思考、再思考使其成為程序員們喜歡使用的語言。
C++:更上一層樓
20世紀(jì)70年代末和80年代初,C語言成為主流計(jì)算機(jī)編程語言,至今仍被廣泛使用,你也許會(huì)問,既然C是一種如此成功且有用的語言,為什么還需要新的計(jì)算機(jī)語言?答案是:復(fù)雜性,縱觀編程的歷史,正是程序日益增加的復(fù)雜性驅(qū)使人們尋求管理復(fù)雜性的更好方法。c++正是適應(yīng)了這一需求,為什么管理程序復(fù)雜性是C++產(chǎn)生的基本條件呢?
計(jì)算機(jī)出生:面板觸發(fā)器(人工打孔)——》對于只有幾百行的程序,這種辦法是可行的,隨著程序不斷變大,人們發(fā)明匯編語言,它使用符號來代替機(jī)器指令,這樣程序員就能處理更大更復(fù)雜的程序,隨著程序進(jìn)一步變大,高級語言產(chǎn)生了,它給程序員提供了更多的工具來處理復(fù)雜性問題。20世紀(jì)80年代初,許多工程項(xiàng)目都令結(jié)構(gòu)化方法到達(dá)了極限。為解決這個(gè)問題,一種面向?qū)ο缶幊痰男戮幊谭椒ㄕQ生,在這里先給出一個(gè)簡短的定義:面向?qū)ο蟮木幊淌峭ㄟ^使用繼承性、封裝性和多態(tài)性來組織復(fù)雜程序的編程方法。
盡管C偉大,但是處理復(fù)雜性的能力有限。一旦一個(gè)程序的代碼超過25000~100000行,就因?yàn)檫^于復(fù)雜從而很難把握,C++突破了這個(gè)限制,可以幫助程序員理解和管理更大的程序。
1979年Bjiarne Stroustrup發(fā)明C++,最初成為帶類的C,83年改名絕衡兄C++,通過增加面向?qū)ο蟮奶匦詳U(kuò)充了C。因?yàn)镃++建立在C的基礎(chǔ)之上,所以包括C的所有特性、屬性和優(yōu)點(diǎn),這是C++作為一種語言的成功的關(guān)鍵原因,發(fā)明C++不是企圖創(chuàng)造一種全新的編程語言,相反,它是對一個(gè)已經(jīng)高度成功的語言的改進(jìn)。
Java出現(xiàn)的時(shí)機(jī)已經(jīng)到來
20世紀(jì)80年代末和90年代初,使用面向?qū)ο缶幊痰腃++語言占主導(dǎo)地位,甚至有一段時(shí)間程序員似乎都認(rèn)為已經(jīng)找到了一種完美的語言。然而,推動(dòng)計(jì)算機(jī)語言進(jìn)化的力量正在醞釀。在隨后的幾年里,萬維網(wǎng)和Internet事件促成了編程的另一場革命。
Java誕生
Java是由Jamcs Gosling、Patrick Naughton、Chris Warth、Ed Frank 和Mike Sheridan于1991年在Sun Microsystems公司設(shè)計(jì)出來,最初推動(dòng)力并非Internet而是源于對獨(dú)立于平臺(tái)語言的需要,這種語言可開發(fā)能嵌入微波爐、遙控器等各種家用電器設(shè)備軟件。用作控制器的CPU是多種多樣的,但是c和c++(以及其他絕大多數(shù)語言)的缺點(diǎn)是只能對特定目標(biāo)進(jìn)行編譯。盡管為任何類型的cpu是多種多樣的,但c和c++的缺點(diǎn)只能對特定目標(biāo)進(jìn)行編譯,盡管為任何類型的cpu編譯c++程序是可能的,但是需要一個(gè)完整的以該cpu為目標(biāo)的c++編譯器,而創(chuàng)建編譯器是一項(xiàng)既耗費(fèi)又耗時(shí)的工作,因此需要一種簡單且更為經(jīng)濟(jì)高效的解決方案。為了找到這種方案,Gosling和其他人一起致力于開發(fā)一種致力于開發(fā)一種可移植的、平臺(tái)獨(dú)立的語言,該語言能夠生成運(yùn)行于不同環(huán)境、不同cpu上的代碼,他們的努力最終促成了Java的誕生。
www誕生對java的未來起到至關(guān)重要的作用
Java與C++不兼容,對Java影響最大的是c#,二者使用相同的語法,而且均支持分布式程序設(shè)計(jì),使用相同的對象模型等。
Java對Internet重要性
二者互補(bǔ)原因簡單,Java擴(kuò)展了可以在電腦空間自由流動(dòng)的對象的世界在網(wǎng)絡(luò)中有兩大類對象在服務(wù)器和個(gè)人計(jì)算機(jī)之間傳輸:被動(dòng)的信息和動(dòng)態(tài)的、主動(dòng)的程序例如,當(dāng)閱讀電子郵件時(shí),是在看被動(dòng)的數(shù)據(jù),甚至當(dāng)你下載一個(gè)程序時(shí),該程序的代碼也是被動(dòng)的數(shù)據(jù),直到你執(zhí)行它為止。可以傳輸?shù)絺€(gè)人計(jì)算機(jī)的另一類對象是動(dòng)態(tài)的,自運(yùn)行的程序,雖然這類程序是客戶機(jī)上的活動(dòng)代理,但卻是由服務(wù)器來初始化的例如,服務(wù)器提供用來正確地顯示服務(wù)器傳送數(shù)據(jù)的程序。網(wǎng)絡(luò)程序在動(dòng)態(tài)上是令人滿意的,但是在可移植上和安全性上卻帶來了嚴(yán)重的問題,在java出現(xiàn)之前有一半以上的電腦實(shí)體無法進(jìn)入網(wǎng)絡(luò)世界,是java為它們打開了便利之門,而且在這個(gè)過程中定義了一種全新的程序形式:applet(小應(yīng)用程序)
Java applet
applet是可以在Internet中傳輸并可以兼容Java的web瀏覽器中運(yùn)行的特殊Java程序,applet可以隨需下載,就像圖像、聲音文件和視頻文件。換句話說,它能對用戶的輸入做出反應(yīng),并且能動(dòng)態(tài)的變化,而不是一遍又一遍地播放同一動(dòng)畫或聲音。
如果java不能解決兩個(gè)關(guān)于applet最棘手的問題:安全性和可移植性,那么applet就不會(huì)如此令人激動(dòng)了
安全性
眾所周知,每次下載一個(gè)正常的程序時(shí),都要冒著被病毒感染的危險(xiǎn),在java出現(xiàn)之前,大多數(shù)用戶并不經(jīng)常下載可執(zhí)行的程序文件,即使下載也要進(jìn)行病毒檢查,盡管如此,大多數(shù)用戶還是擔(dān)心,除了病毒還有惡意程序也要警惕,這種程序通過搜索計(jì)算機(jī)本地文件系統(tǒng)的內(nèi)容來收集你的私人信息,例如信用卡號碼,銀行賬戶結(jié)算和口令而Java在網(wǎng)絡(luò)應(yīng)用程序和用戶的計(jì)算機(jī)之間提供了一道防火墻(firewall),消除了用戶這些顧慮
將java程序編譯成字節(jié)碼有助于更容易地在一個(gè)大的范圍環(huán)境下運(yùn)行程序原因非常簡單,只要在各種操作平臺(tái)上實(shí)現(xiàn)java虛擬機(jī)就可以了。在一個(gè)給定的系統(tǒng)中,只要系統(tǒng)運(yùn)行時(shí)包存在,任何java程序就可以在該系統(tǒng)上運(yùn)行。記住,盡管不同平臺(tái)的java虛擬機(jī)的細(xì)節(jié)有所不同,但它們都理解相同的java字節(jié)碼,如果java程序被編譯為本機(jī)代碼,那么對于連接到Internet上的每種cpu類型都要有該程序的對應(yīng)版本,這當(dāng)然不是一種可行的解決方案。因此,通過JVM執(zhí)行字節(jié)碼是編寫真正可移植性程序最容易的方法
JVM執(zhí)行java程序有助于提高安全性,因?yàn)?jvm控制java程序的運(yùn)行,所以它可以包含這個(gè)程序并且能阻止它在系統(tǒng)之外產(chǎn)生負(fù)作用,而java語言特有的某些限制增強(qiáng)了它的安全性
java專門用語
簡單(simple)安全(secure)可移植(Portable)面向?qū)ο螅∣bject-oriented)健壯(Robust)多線程(Multithread)體系結(jié)構(gòu)中立(Architecture-neutral)解釋執(zhí)行(Interpreted)高性能(High perforance分布式(Distributed)動(dòng)態(tài)(Dynamic)
健壯性:先考慮使程序失敗的兩個(gè)重要原因:內(nèi)存管理錯(cuò)誤,和誤操作引起的異常情況(運(yùn)行時(shí)錯(cuò)誤)。在傳統(tǒng)的編程環(huán)境下,內(nèi)存管理是一項(xiàng)困難乏味的任務(wù)。例如:在c++/c中程序員必須手工分配和釋放所有的動(dòng)態(tài)內(nèi)存。就會(huì)出現(xiàn)問題,因?yàn)槌绦騿T可能忘記釋放原來分配的內(nèi)存,或者釋放了其他正在使用的內(nèi)存,而通過Java管理內(nèi)存分配和釋放,可以從根本上消除這些問題(事實(shí)上釋放內(nèi)存是完全自動(dòng)的,因?yàn)镴ava為閑置的對象提供了內(nèi)存垃圾自動(dòng)收集)。在傳統(tǒng)的環(huán)境下,異常情況可能經(jīng)常由“除零”或“文件未找到”這樣的情況所引起,而我們又必須用既笨拙又難以理解的一大堆指令來對它們進(jìn)行管理,Java通過提供面向?qū)ο蟮漠惓L幚頇C(jī)制解決這個(gè)問題。在編寫良好的Java程序中,所有的運(yùn)行時(shí)錯(cuò)誤都可以并且應(yīng)該有程序自身進(jìn)行管理
多線程
設(shè)計(jì)Java的目標(biāo)之一是滿足人們對創(chuàng)建交互式網(wǎng)絡(luò)程序的需要,為此,Java支持多線程編程,因而用Java編寫的應(yīng)用程序可以同時(shí)執(zhí)行多個(gè)任務(wù),Java運(yùn)行時(shí)系統(tǒng)在多線程同步方面具有成熟的解決方案,能夠創(chuàng)建出運(yùn)行平穩(wěn)的交互式系統(tǒng),Java的多線程機(jī)制非常好用,所以只需關(guān)注程序特定的行為,不用擔(dān)心多任務(wù)子系統(tǒng)
體系結(jié)構(gòu)中立
Java設(shè)計(jì)者考慮主要問題是程序代碼的持久性和可移植性。程序員面臨的問題是不能保證今天的程序明天能否在同一臺(tái)機(jī)器上順利運(yùn)行。操作系統(tǒng)升級、處理器升級以及核心系統(tǒng)資源的變化,都可能導(dǎo)致程序無法繼續(xù)運(yùn)行,Java設(shè)計(jì)者對這個(gè)問題做過多種嘗試,Java虛擬機(jī)就是用來解決這個(gè)問題的。它們的目標(biāo)是“只要寫一次程序,在任何地方、任何時(shí)間該程序永遠(yuǎn)都能執(zhí)行”這在很大程度上,Java實(shí)現(xiàn)了這個(gè)目標(biāo)
解釋執(zhí)行和高性能
前面說過,通過把程序編譯為Java字節(jié)碼,Java可以產(chǎn)生跨平臺(tái)運(yùn)行的程序。該代碼可以在提供Java虛擬機(jī)的任何一種系統(tǒng)上執(zhí)行,其他的跨平臺(tái)解決方案對性能要求都很高,而Java的字節(jié)碼經(jīng)過設(shè)計(jì)后,很容易用JIT編譯器將字節(jié)碼直接轉(zhuǎn)換成高性能的本機(jī)代碼,Java運(yùn)行時(shí),系統(tǒng)在提供這個(gè)特性的同時(shí)仍具有平臺(tái)獨(dú)立性
分布式
Java是為Internet的分布式環(huán)境而設(shè)計(jì),因?yàn)樗芴幚鞹CP/IP協(xié)議事實(shí)上,通過URL地址訪問資源與直接訪問一個(gè)文件的差別并不太大。Java還支持遠(yuǎn)程方法調(diào)用(Remote Method Invocation,RMI)使程序能夠跨網(wǎng)絡(luò)調(diào)用方法。
動(dòng)態(tài):
Java程序帶有多種運(yùn)行時(shí)類型信息,用于在運(yùn)行時(shí)校驗(yàn)和解決對象訪問問題。這使得在一種安全,有效的方式下動(dòng)態(tài)地鏈接代碼成為可能,同時(shí)對applet環(huán)境的健壯性十分重要,因?yàn)樵谶\(yùn)行的系統(tǒng)中,可以動(dòng)態(tài)地更新字節(jié)碼內(nèi)的小段程序
java的演化
Java的最初發(fā)布本不亞于一場革命,但是它并不標(biāo)志著Java快速革新時(shí)代的結(jié)束。與其他軟件系統(tǒng)經(jīng)常進(jìn)行小的改進(jìn)不同,Java以爆炸式的步伐向前發(fā)展。Java1.0發(fā)布后不久,Java的設(shè)計(jì)者開發(fā)出了Java1.1Java1.1新增的特性遠(yuǎn)比普通意義上的版本修訂的內(nèi)容豐富許多,Java1.1增加了許多新的庫元素,重新定義了applet處理事件的方法,并且重新設(shè)置了1.0版中庫的許多特性,同時(shí)它也放棄了原來的由Java1.0定義的若干過時(shí)的特征。
java的第二個(gè)版本是java2,“2”代表是第二代,java2是一個(gè)分水嶺,它標(biāo)志著java現(xiàn)代時(shí)的開始!java2第一版本號是1.2,其原因是1.2最初指的是java庫的內(nèi)部版本號,后來才用作整個(gè)發(fā)行版。Sun公司將其java產(chǎn)品重新組裝為J2SE(java2平臺(tái)標(biāo)準(zhǔn)版)
java2增加了很多新特性,例如Swing和集合框架(collection framework),并且還提高了java虛擬機(jī)和各種編程工具的性能。java2也包含了一些不贊成繼續(xù)使用的內(nèi)容主要是Thread類中suspend()、resume()和stop()等方法
Java下一個(gè)版本是J2SE1.3這個(gè)版本是Java2最初版本的第一次主要升級。該版本增強(qiáng)了Java大部分現(xiàn)有的功能,并且限制了開發(fā)環(huán)境。總的說來。版本1.2和1.3的程序源代碼是兼容的
J2se1.4發(fā)布進(jìn)一步增強(qiáng)了java此發(fā)行版包括了許多重要的升級、改進(jìn)和新增功能例如,新增了關(guān)鍵詞assert、鏈?zhǔn)疆惓:鸵粋€(gè)基于心道的i/o子系統(tǒng),它同時(shí)對集合框架和網(wǎng)絡(luò)類作樂改動(dòng)。另外還有不計(jì)其數(shù)的小改動(dòng)貫穿其中。盡管引進(jìn)了很多新功能,但版本1.4幾乎與先前版本幾乎保持了百分之百的源代碼兼容。Java的最新版本是J2se 5,它無疑是另一場革命!
J2SE最新版本是J2SE5,它無疑是另一場革命!
J2SE5革命
是java生命里程碑上一個(gè)重要的事件。與java先前大多數(shù)升級不同,j2se5提供的不是遞增式的改進(jìn),而是從根本上拓展了java語言的作用域,功能和范圍,java的任何一次發(fā)行都無法與J2SE5相提并論。為了領(lǐng)會(huì)關(guān)注一下新特性
泛型 冗數(shù)據(jù) 自動(dòng)裝箱和自動(dòng)拆箱(Autoboxing和Auto-unboxing)枚舉 增強(qiáng)的for-each風(fēng)格的for循環(huán) 變長參數(shù) 靜態(tài)導(dǎo)入 格式化I/O 并行工具 對API的升級
上述這些特性不是枝節(jié)的改動(dòng)和遞增式的升級,每一項(xiàng)都代表著對java語言的重大引進(jìn)。比如泛型。增強(qiáng)的for循環(huán)類型,和變長參數(shù),引進(jìn)了新的語法元素,自動(dòng)裝箱和自動(dòng)拆箱,改變了java的語言的句法冗數(shù)據(jù)將一種全新的標(biāo)準(zhǔn)引入到編程領(lǐng)域,所有這些新增特性,不僅造成了直接影響,而且還改變了java本身的基本特性
這些新增的特性重要性反映了在版本號“5”的才用上,下一個(gè)版本號正常情況應(yīng)為1.5,但這些變化和新增的特性是在是太重要了僅從1.4轉(zhuǎn)向1.5不足以說明變化之大,因此,Sun公司選擇將發(fā)行號增至5來強(qiáng)調(diào),當(dāng)前產(chǎn)品被稱為J2SE 5,開發(fā)者工具箱被稱為JDK 5,不過處于維持一致性的考慮,Sun決定將內(nèi)部版本號定為1.5,即“5”是外部版本號,“1.5”是內(nèi)部版本號。
文化革新
從一開始,Java就處于文化革新的中心位置。它的第一個(gè)發(fā)行版重新定義了面向Internet的程序設(shè)計(jì),Java虛擬機(jī)(JVM和字節(jié)碼)改變了我們對安全性和可移植性的認(rèn)識(shí),applet(包括其后的servlet)給Web帶來了盎然生機(jī),Java社區(qū)項(xiàng)目重新定義了Java語言吸收新理念的方式,Java世界從來都不是靜止不前一成不變的。
隨著J2SE的發(fā)行,Java又一次獲得涅馨,適應(yīng)了變化莫測的編程前景的需求,也又一次成功地站到了計(jì)算機(jī)語言設(shè)計(jì)領(lǐng)域的最前沿。
新聞名稱:java代碼控制家用電器 java怎么控制硬件設(shè)備
當(dāng)前地址:http://chinadenli.net/article23/dspjsjs.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、全網(wǎng)營銷推廣、App開發(fā)、做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)