PHP適合于快速開發(fā),中小型應(yīng)用系統(tǒng),開發(fā)成本低,能夠?qū)ψ儎拥男枨笞鞒隹焖俚姆磻?yīng)。而Java適合于開發(fā)大型的應(yīng)用系統(tǒng),應(yīng)用的前景比較廣闊,系統(tǒng)易維護(hù)、可復(fù)用性較好?,F(xiàn)在市場上的oa基本上可歸結(jié)為兩大陣營,即php陣營和java陣營。首先得明白php和java之間的差異才行。架構(gòu)的差距,注定了php做的oa充其量是個(gè)小家碧玉,始終無法和java這種大家閨秀同臺競技。
JAVA和PHP的區(qū)別是什么呢?
所有PHP都適合快速開發(fā),中小型應(yīng)用系統(tǒng),開發(fā)成本低,對需求變化響應(yīng)快。Java適合大型應(yīng)用系統(tǒng)的開發(fā),應(yīng)用前景廣闊,易于維護(hù),可重用性好。通過對兩種語言編寫的oa系統(tǒng)的比較,對兩種語言的差異進(jìn)行了全面的比較?,F(xiàn)在市面上的OA基本可以分為兩大陣營,分別是php陣營和java陣營。但是對于接觸oa時(shí)間短的用戶來說,看到的往往只是外表,只有明顯的價(jià)格差異,很難看出兩者的實(shí)際區(qū)別。其實(shí)沒有價(jià)值的PHP+并不僅限于oa軟件,PHP+MYSQL開發(fā)的軟件還不如java開發(fā)的軟件有價(jià)值。PHP+MYSQL的OA為什么不值錢?我們首先要了解php和java的區(qū)別。1.系統(tǒng)的分層技術(shù)架構(gòu)是有效組織系統(tǒng)的方式,分而治之的思想是計(jì)算機(jī)領(lǐng)域非常重要的思想。在良好的分層思想指導(dǎo)下,可以實(shí)現(xiàn)“高內(nèi)聚低耦合”,將具體問題分離出來,易于控制,易于擴(kuò)展,更易于分配資源。PHP只能實(shí)現(xiàn)簡單的分布式兩層或者三層架構(gòu),而JAVA在這方面非常強(qiáng)大,可以實(shí)現(xiàn)多層網(wǎng)絡(luò)架構(gòu)。使用MVC設(shè)計(jì)模式可以使oa系統(tǒng)有一個(gè)更高效、更合理的系統(tǒng)架構(gòu)。技術(shù)的落后使得php編寫的oa軟件系統(tǒng)先天不足,后天無法彌補(bǔ)先天劣勢。該系統(tǒng)與JAVA編寫的oa軟件系統(tǒng)在擴(kuò)展性和適應(yīng)性上的差距越來越大。架構(gòu)上的差距注定了php做出來的oa頂多是個(gè)小家碧玉,永遠(yuǎn)比不過java這樣的好人家。2.數(shù)據(jù)庫訪問比較PHP可以編譯成與很多數(shù)據(jù)庫連接的函數(shù)。我會自己寫外圍函數(shù)來間接訪問數(shù)據(jù)庫。這樣,當(dāng)使用的數(shù)據(jù)庫發(fā)生變化時(shí),可以很容易地修改代碼以適應(yīng)這種變化。但是PHP提供的數(shù)據(jù)庫接口支持各不相同,比如對MySQL的接口就各不相同。由于PHP對不同的數(shù)據(jù)庫使用不同的數(shù)據(jù)庫訪問接口,所以數(shù)據(jù)庫訪問代碼的通用性不強(qiáng)。Java通過JDBC訪問數(shù)據(jù)庫,不同數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫驅(qū)動程序方便訪問數(shù)據(jù)庫,訪問數(shù)據(jù)庫的接口也比較統(tǒng)一。如果開發(fā)的web應(yīng)用也是從MYSQL數(shù)據(jù)改為data,PHP需要做大量的修改工作,而且繁瑣。然而,JAVA開發(fā)只需做一些改動就可以實(shí)現(xiàn)。數(shù)據(jù)庫訪問的不同意味著php開發(fā)的oa和java開發(fā)的oa是車廂和火車的差距。前者只能并駕齊驅(qū)且額度有限,后者是工業(yè)化的結(jié)晶,既能包容一切又能穩(wěn)步提高速度。3.安全性對比在既開源又跨平臺的java面前,php失去了很多優(yōu)勢。尤其是在代碼的安全性方面。php的開發(fā)程序在別人拿到代碼后可以很容易的修改。而java開發(fā)的程序看不到完整的源代碼,只能看到一些編譯好的類文件,所以安全性高。再加上系統(tǒng)架構(gòu)的優(yōu)勢,php和java在安全性上相差甚遠(yuǎn)。如果我們必須在安全性方面比較php和java,那么光顧php的同一個(gè)小偷只會改變它,拿走他想要的任何東西,如果他高興,他將能夠訪問一輝。當(dāng)你游覽java的時(shí)候,你會發(fā)現(xiàn)有警察在守衛(wèi)著它,里面有自動報(bào)警裝置,即使你沖破重重障礙進(jìn)入房間。值錢的東西都放在加密的保險(xiǎn)柜里,只能失望而歸。4.向前看,不斷擴(kuò)大。總的來說,php適合中小型系統(tǒng),java適合大型系統(tǒng)。Php可以做好單個(gè)事件,但不適合完成多個(gè)高集成度的并發(fā)事件。為什么php適合中小型系統(tǒng)而不適合大型系統(tǒng)?首先,php缺乏多層結(jié)構(gòu)支持。對于大型系統(tǒng)負(fù)荷站,只能使用分布式計(jì)算。數(shù)據(jù)庫、應(yīng)用邏輯層和表現(xiàn)邏輯層是相互分離的