Java和PHP的區(qū)別_JAVA和PHP的比較(2)
Java和PHP的區(qū)別_JAVA和PHP的比較
JAVA與PHP的對(duì)比
1、java和php技術(shù)層面對(duì)比:java是純面向?qū)ο箝_發(fā),功能強(qiáng)大,分支眾多,沒有java不能做的軟件。C/S也好B/S也好。從功能上講,沒有語言可以和java相比。但其優(yōu)勢(shì)也是其劣勢(shì),具體參考第5點(diǎn)。PHP屬于后起之秀,吸收了java和c以及perl等語言優(yōu)點(diǎn),專注互聯(lián)網(wǎng)領(lǐng)域。WEB領(lǐng)域PHP擁有得天獨(dú)厚的優(yōu)勢(shì),WEB領(lǐng)域沒有語言可以和他比。兩者相比,基本上java完勝。但是其實(shí)并沒有太大的可比性,專注領(lǐng)域不同。單純拿兩者都可以做的WEB來說,PHP完勝。
2、java和php市場(chǎng)份額對(duì)比:java語言算是古老,多年的發(fā)展,其在C/S領(lǐng)域和B/S領(lǐng)域都占有一席之地,特別是在電信和銀行行業(yè)。但隨著社會(huì)需求的變化和其他語言的專注,java的市場(chǎng)正被一點(diǎn)點(diǎn)蠶食,WEB領(lǐng)域幾乎被PHP一統(tǒng)天下,嵌入式領(lǐng)域幾乎被C++一統(tǒng)天下,客戶端領(lǐng)域幾乎被C語言一統(tǒng)天下,要不是安卓的出現(xiàn),java的命運(yùn)還真不好說了。其之前積累的巨大java帝國(guó)不會(huì)一下子崩塌,一定是有一個(gè)過程。所以現(xiàn)在學(xué)習(xí)并不需要擔(dān)心其前途,現(xiàn)在學(xué)習(xí)你更需要擔(dān)心的卻是近十年間英才輩出的javaer,和大批正在進(jìn)入java陣營(yíng)的同業(yè)者。PHP在市場(chǎng)描述就比較簡(jiǎn)單了,因?yàn)槲覀冎灰匆粋€(gè)領(lǐng)域,那就是web領(lǐng)域。WEB領(lǐng)域php的市場(chǎng)超過80%,其余的則是如java-JSP,asp,C#,.NET,python,ruby等。網(wǎng)站500強(qiáng)中有395家使用PHP。全球最大的兩個(gè)網(wǎng)站facebook和新浪微博全在使用PHP。兩者相比,算平分秋色。
3、java和PHP的發(fā)展空間對(duì)比:安卓勢(shì)頭很猛,但手機(jī)安裝app數(shù)量有限,推廣難,也是app面臨的最大挑戰(zhàn),好在安卓只有JAVA可以做,除此之外就是HTML5了。中國(guó)人口占全球人口19.7%,中國(guó)網(wǎng)民占全球網(wǎng)民22.4%,中國(guó)網(wǎng)站數(shù)量占全球網(wǎng)站數(shù)量的0.5%,網(wǎng)站的可發(fā)展空間可謂巨大;發(fā)達(dá)國(guó)家互聯(lián)網(wǎng)對(duì)GDP的貢獻(xiàn)可達(dá)20%,中國(guó)互聯(lián)網(wǎng)對(duì)GDP的影響僅為3%??芍^互聯(lián)網(wǎng)的發(fā)展空間巨大,而互聯(lián)網(wǎng)離不開WEB,WEB離不開PHP。兩者相比,個(gè)人覺得PHP的優(yōu)勢(shì)更加明顯。
4、java和PHP的薪資對(duì)比薪資事由供求關(guān)系決定的:人才缺失,薪資自然高,人才飽和,薪資自然不會(huì)高。java由于大學(xué)基本都有這個(gè)課程,很多人想從事軟件行業(yè)的時(shí)候,自然就學(xué)習(xí)JAVA了,加上java近10年的火爆,人才輩出,整個(gè)java行業(yè)是處于供大于求的。南京地區(qū):一個(gè)30人的java培訓(xùn)班,最后差不多10人找不到理想的工作而轉(zhuǎn)行,最低薪資甚至只有1000多元,就有人肯干。當(dāng)然java學(xué)的好的,薪資4000多也是不少的。PHP完全依托于市場(chǎng)的驅(qū)動(dòng),難點(diǎn)在于很多人并不了解PHP,也沒途徑可以了解,根本原因是大學(xué)沒有這個(gè)課程,我知道的,南京百十所高校只有曉莊學(xué)院開了PHP課程,而且不是作為主修。市場(chǎng)對(duì)PHP的需求,高校并不清楚,高校更愿意推符合學(xué)院派特點(diǎn)的java。學(xué)習(xí)php的人少,企業(yè)需求多,導(dǎo)致PHP薪資遠(yuǎn)遠(yuǎn)超過了同行業(yè)者。一般起薪?jīng)]有低于3000元的。南京地區(qū)高的早已經(jīng)突破4500元。北上廣更是突破了6000元的起薪。兩者相比:除了java工作難找,但只要找到了工作,高位線是差不多的,低位線JAVA明顯處于劣勢(shì)。
5、java和php各自發(fā)展的瓶頸:JavaEE體系曾經(jīng)統(tǒng)治企業(yè)級(jí)軟件開發(fā)長(zhǎng)達(dá)數(shù)十年之久,十年間英才輩出,但是Java語言本身卻越來越顯示出臃腫和分裂的態(tài)勢(shì)。使用Java是個(gè)昂貴的選擇,復(fù)雜的需求設(shè)計(jì),緩慢的項(xiàng)目進(jìn)度,昂貴的應(yīng)用服務(wù)器和維護(hù)難度使Java成為了一種廟堂之上的語言。而版本的分裂也使所謂的跨平臺(tái)特性成為了一句空話。Java的特性使得它并不適合業(yè)務(wù)隨著市場(chǎng)快速變化的互聯(lián)網(wǎng)企業(yè),WEB領(lǐng)域幾乎被PHP一統(tǒng)天下,嵌入式領(lǐng)域幾乎被C++一統(tǒng)天下,客戶端領(lǐng)域幾乎被C語言一統(tǒng)天下,要不是安卓的出現(xiàn),java的命運(yùn)還真不好說了。php的大中型系統(tǒng)開發(fā),方便、快速、是java跟asp.net沒法比擬的, 還有php有很多如yaf,yii,ci等強(qiáng)大的框架, 中小型一般系統(tǒng)的開發(fā),一個(gè)thinkphp就足于通殺java的ssh三大框架了。PHP由于其簡(jiǎn)單,快速開發(fā)等特點(diǎn),也導(dǎo)致了開發(fā)復(fù)雜應(yīng)用稍顯吃力,所謂成也蕭何敗也蕭何,PHP由于其關(guān)注應(yīng)用層面,開發(fā)基本不需要考慮底層的東西,導(dǎo)致其開發(fā)快速,學(xué)習(xí)簡(jiǎn)單;但也導(dǎo)致了學(xué)習(xí)PHP工作一段時(shí)間比較容易遇到瓶頸,PHP在5.3版本后加入了更為強(qiáng)大的擴(kuò)展,通過PHP的擴(kuò)展可以實(shí)現(xiàn)PHP本身實(shí)現(xiàn)不了的功能。所以PHP開發(fā)遇到了這樣瓶頸,可以考慮通過擴(kuò)展來解決,facebook和weibo.com正在大量使用擴(kuò)展功能去應(yīng)對(duì)一個(gè)又一個(gè)的難題。新浪微博架構(gòu)師兼首席PHP技術(shù)顧問惠新宸一直在專注與PHP底層原理的研究和分享。擴(kuò)展是被他認(rèn)為PHP最偉大的地方。
總結(jié)一下:java和PHP各有各的優(yōu)勢(shì),說到明天早上也不一定說的完,我想說的是學(xué)習(xí)哪一個(gè),都是OK的。想學(xué)java就從事安卓行業(yè),想從事WEB領(lǐng)域,就學(xué)習(xí)PHP。由于java的學(xué)習(xí)難度,沒有基礎(chǔ)或者基礎(chǔ)不好的同學(xué)還是謹(jǐn)慎選擇,對(duì)于零基礎(chǔ)的同學(xué)還是PHP可能更加適合一點(diǎn)。
為了讓更多的人有機(jī)會(huì)學(xué)習(xí)互聯(lián)網(wǎng),進(jìn)入互聯(lián)網(wǎng)行業(yè),天軟科技公司隸屬于國(guó)家工業(yè)化和信息化產(chǎn)業(yè)部,由人力資源部和社會(huì)保障部授權(quán)。在天津市政府的支持下,我們與全市各大科技型尖端企業(yè)合作,每年定向培養(yǎng)和輸送IT人才500余名,公司自建校至今為合作企業(yè)已有300多家,定向培養(yǎng)5000多名優(yōu)秀的IT技術(shù)人才。公司以最貼近中國(guó)企業(yè)的實(shí)際需求,吸引資深技術(shù)專家、精英工程師組成核心團(tuán)隊(duì),為高端IT企業(yè)提供全面的人才服務(wù),并為全行業(yè)提供高級(jí)應(yīng)用型人才。堅(jiān)定不移的立足科技創(chuàng)新,專攻產(chǎn)品技術(shù)研發(fā),豐滿研發(fā)之雙翼,為中國(guó)信息產(chǎn)業(yè)發(fā)展做出貢獻(xiàn)。在天軟,我們有前沿的實(shí)訓(xùn)課程。在天軟,我們有強(qiáng)大的師資力量,在天軟,我們有完善的就業(yè)保障。天軟隨時(shí)歡迎心懷IT夢(mèng)的有志青年加入。
Java和PHP在Web開發(fā)方面的比較
一、 語言比較
PHP是解釋執(zhí)行的服務(wù)器腳本語言,首先php有簡(jiǎn)單容易上手的特點(diǎn)。語法和c語言比較象,所以學(xué)過c語言的程序員可以很快的熟悉php的開發(fā)。而java需要先學(xué)好java的語法和熟悉一些核心的類庫,懂得面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。所以java不如php好學(xué)。
Java首先要編譯成字節(jié)碼.class文件,然后在java虛擬機(jī)上解釋執(zhí)行。Java的Web開發(fā)首先最容易想到的就是JSP(現(xiàn)在已經(jīng)到JSP2.0),原來的java的Web開發(fā)都是用servlet來實(shí)現(xiàn)的,用servlet來開發(fā)需要程序員在java的源文件中嵌入大量的html代碼。所以后來就出現(xiàn)了JSP,JSP可以方便的嵌入到html文件當(dāng)中,其實(shí)jsp文件在服務(wù)器上執(zhí)行的時(shí)候首先會(huì)被應(yīng)用服務(wù)器轉(zhuǎn)換成servlet,然后再編譯執(zhí)行。Jsp可以通過servlet和JavaBean的支持產(chǎn)生強(qiáng)大的功能。JavaBean 是一種可復(fù)用的、跨平臺(tái)的軟件組件。使用javabean可以方便的實(shí)現(xiàn)java代碼和html的分離,能夠增強(qiáng)系統(tǒng)的功能和軟件的復(fù)用性。
Java的Web開發(fā)屬于SUN公司定義的J2EE其中的規(guī)范。而且在J2EE中包括了java的Web開發(fā)的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特別適合于做大型的企業(yè)級(jí)的應(yīng)用。
二、 數(shù)據(jù)庫訪問比較
Java通過JDBC來訪問數(shù)據(jù)庫,通過不同的數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫驅(qū)動(dòng)方便地訪問數(shù)據(jù)庫。訪問數(shù)據(jù)庫的接口比較統(tǒng)一。
PHP對(duì)于不同的數(shù)據(jù)庫采用不同的數(shù)據(jù)庫訪問接口,所以數(shù)據(jù)庫訪問代碼的通用性不強(qiáng)。例如:用Java開發(fā)的Web應(yīng)用從MySQL數(shù)據(jù)庫轉(zhuǎn)到Oracle數(shù)據(jù)庫只需要做很少的修改。而PHP則需要做大量的修改工作。
三、 系統(tǒng)設(shè)計(jì)架構(gòu)比較
采用 Java的Web開發(fā)技術(shù),需要使用的是面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)方法,而PHP還是采用面向過程的開發(fā)方法。所以用Java進(jìn)行開發(fā)前期需要做大量的系統(tǒng)分析和設(shè)計(jì)的工作。
四、 跨平臺(tái)性
Java和PHP都有很好的跨平臺(tái)的特性。幾乎都可以在不作任何修改的情況下運(yùn)行在Linux或者Windows等不同的操作系統(tǒng)上。
五、 開發(fā)成本比較
PHP最經(jīng)典的組合就是:PHP + MySQL + Apache。非常適合開發(fā)中小型的Web應(yīng)用,開發(fā)的速度比較快。而且所有的軟件都是開源免費(fèi)的,可以減少投入。
Java的Web應(yīng)用服務(wù)器有免費(fèi)Tomcat、JBoss等,如果需要更好的商業(yè)化的服務(wù)有:Web Sphere和 Web logic。
六、 分布式多層架構(gòu)比較
PHP只能實(shí)現(xiàn)簡(jiǎn)單的分布式兩層或三層的架構(gòu),而JAVA在這方面就比較強(qiáng)大,可以實(shí)現(xiàn)多層的網(wǎng)絡(luò)架構(gòu)。數(shù)據(jù)庫層(持久化層)、應(yīng)用(業(yè)務(wù))邏輯層、表示邏輯層彼此分開,而且現(xiàn)在不同的層都已經(jīng)有一些成熟的開發(fā)框架的支持。例如Struts就是利用java的Web開發(fā)技術(shù)實(shí)現(xiàn)了MVC的設(shè)計(jì)模式,而在業(yè)務(wù)邏輯層也有Spring框架,數(shù)據(jù)庫持久化層有Hibernate等框架。這些框架可以方便開發(fā)者高效、合理、科學(xué)得架構(gòu)多層的商業(yè)應(yīng)用。
下面簡(jiǎn)要的說一下 Struts,它實(shí)質(zhì)上是在JSP Model2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè)MVC(Model、View、Controler)框架。JSP Model2體系結(jié)構(gòu)是一種聯(lián)合使用JSP 與Servlet 來提供動(dòng)態(tài)內(nèi)容的方法。在Struts框架中,模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的JavaBean或EJB組件構(gòu)成,控制器由Servlet實(shí)現(xiàn)的,視圖由一組JSP文件組成。采用Struts可以明確角色的定義和開發(fā)者與網(wǎng)頁設(shè)計(jì)者的分工。而且項(xiàng)目越復(fù)雜,其優(yōu)勢(shì)越明顯。
七、 源代碼安全
PHP開發(fā)的程序的源代碼都是公開的,他人拿到php開發(fā)的程序后都可以進(jìn)行修改。
Java開發(fā)的程序,最后用戶拿到的是只是一些編譯好的class類,無法看到完整的源代碼,安全性高。
八、性能比較
有人做過試驗(yàn),對(duì)這兩種種語言分別做回圈性能測(cè)試及存取 Oracle數(shù)據(jù)庫測(cè)試。
在循環(huán)性能測(cè)試中, JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的回圈。而PHP測(cè)試的是2000*2000循環(huán)(少一個(gè)數(shù)量級(jí)),卻分別用了63秒。
數(shù)據(jù)庫測(cè)試中,二者分別對(duì) Oracle 8 進(jìn)行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒。
項(xiàng)目 | PHP | JAVA |
可復(fù)用性 | 低 | 高 |
開發(fā)速度 | 快 | 慢 |
易維護(hù)性 | 差 | 優(yōu) |
可移植性 | 優(yōu)-Linux | Windows、Unix |
安全性 | 低 | 高 |
開發(fā)費(fèi)用 | 低 | 高 |
多層架構(gòu) | 差 | 優(yōu) |
數(shù)據(jù)庫訪問 | 接口不統(tǒng)一 | 接口統(tǒng)一 |
可擴(kuò)展性 | 差 | 優(yōu) |
面向?qū)ο?/p> | 差 | 優(yōu) |
綜上所述,我個(gè)人認(rèn)為, PHP適合于快速開發(fā),中小型應(yīng)用系統(tǒng),開發(fā)成本低,能夠?qū)ψ儎?dòng)的需求作出快速的反應(yīng)。而Java適合于開發(fā)大型的應(yīng)用系統(tǒng),應(yīng)用的前景比較廣闊,系統(tǒng)易維護(hù)、可復(fù)用性較好。還有,同樣功能的系統(tǒng)用Java開發(fā)的系統(tǒng)要比PHP開發(fā)的系統(tǒng)的價(jià)格要高。
看了Java和PHP的區(qū)別還看: