java和php哪個(gè)難學(xué)?java 和php 那個(gè)比較好學(xué),各有什么好處?java和php對(duì)比,需要從不同階段來(lái)分析,入門(mén)階段,php相對(duì)占優(yōu),到了精通階段,java更容易。php和java是目前被廣泛使用的兩種編程語(yǔ)言,php的應(yīng)用領(lǐng)域主要集中在web開(kāi)發(fā),而java的應(yīng)用領(lǐng)域包括web開(kāi)發(fā)、大數(shù)據(jù)開(kāi)發(fā)、android開(kāi)發(fā)等。從應(yīng)用生態(tài)的完整性來(lái)說(shuō),java稍占優(yōu)勢(shì)。
入門(mén)階段
1、php是腳步語(yǔ)言,支持面向?qū)ο蠛兔嫦蜻^(guò)程的寫(xiě)法,語(yǔ)法非常簡(jiǎn)單,例如php的數(shù)組就是萬(wàn)能的,而java用了多種數(shù)據(jù)結(jié)構(gòu)來(lái)進(jìn)行處理,比較麻煩。
2、做一個(gè)中小型項(xiàng)目來(lái)看,同樣的工作量,php的開(kāi)發(fā)效率可以達(dá)到j(luò)ava的3倍。
3、php主要用于web開(kāi)發(fā),在web開(kāi)發(fā)方面非常方便,也間接導(dǎo)致入門(mén)容易。
精通階段
但是從熟練到精通的過(guò)程php并不容易,原因如下:
1、php的整個(gè)生態(tài)完全由開(kāi)源主導(dǎo),導(dǎo)致整個(gè)生態(tài)圈相對(duì)有點(diǎn)亂,而java則有幾家比較權(quán)威的機(jī)構(gòu)在主導(dǎo),比如apache基金會(huì)。
2、像mvc類(lèi)型的框架也沒(méi)有非常突出的選擇,而java早期ssh,現(xiàn)在spring mvc市場(chǎng)占有率極高,有利于經(jīng)驗(yàn)的積累。
3、php綜合來(lái)看,做大型項(xiàng)目比較吃力,而大公司都在用java,解決方案非常成熟,高手也多,精通起來(lái)比較容易一些。
java和php對(duì)比
1、語(yǔ)言特征
php為腳本語(yǔ)言,解釋型語(yǔ)言,弱類(lèi)型,專(zhuān)為web開(kāi)發(fā)打造。java為c語(yǔ)言系編程語(yǔ)言,編譯型,強(qiáng)類(lèi)型,有跨平臺(tái)的特征。從語(yǔ)法簡(jiǎn)潔性來(lái)說(shuō),php比java簡(jiǎn)潔,畢竟php誕生比java晚,同樣的邏輯在php中表達(dá)起來(lái)會(huì)簡(jiǎn)潔于java,這一特性導(dǎo)致同樣熟練度的phper與javaer相比phper編程速度要快于javaer。
2、執(zhí)行速度
語(yǔ)言特征決定了執(zhí)行速度,在執(zhí)行速度上,網(wǎng)上也有很多對(duì)比,總結(jié)而言java優(yōu)于php,但事實(shí)上比較兩者的執(zhí)行速度意義不大,因?yàn)閣eb應(yīng)用的效率瓶頸是在對(duì)數(shù)據(jù)庫(kù)的相關(guān)操作上,需要強(qiáng)調(diào)的是php與java同樣是作為web服務(wù)器開(kāi)發(fā)語(yǔ)言,功能都是操作數(shù)據(jù)庫(kù)服務(wù)器以及動(dòng)態(tài)網(wǎng)頁(yè)呈現(xiàn)而已,如果網(wǎng)站多數(shù)以靜態(tài)頁(yè)面的形式呈現(xiàn)給用戶(hù),那兩者比較毫無(wú)意義。
3、部署方式
php典型的部署方式是lamp,即linux系統(tǒng)+apache服務(wù)器 +mysql數(shù)據(jù)庫(kù)+php語(yǔ)言,而javaee的部署方式有l(wèi)inux系統(tǒng)+tomcat服務(wù)器+mysql數(shù)據(jù)庫(kù)+java語(yǔ)言,不同之處只在于服務(wù)器與語(yǔ)言的選擇,tomcat與apache都是開(kāi)源免費(fèi)的服務(wù)器,從部署上來(lái)講兩種語(yǔ)言都有可行的解決方案。但在這里重點(diǎn)講的是虛擬機(jī)主機(jī),國(guó)內(nèi)的虛擬主機(jī)大多不支持java,即便支持java也貴于php,而且java應(yīng)用大多使用tomcat服務(wù)器,而java虛擬主機(jī)是共享tomcat進(jìn)程,如果部署到該服務(wù)器的其它應(yīng)用影響到了tomcat進(jìn)程會(huì)導(dǎo)致所有應(yīng)用都無(wú)法使用tomcat進(jìn)程,因而主機(jī)服務(wù)商維護(hù)java服務(wù)器成本高于php服務(wù)器,所以這也導(dǎo)致了php在web端獨(dú)大的現(xiàn)狀。當(dāng)然不用虛擬主機(jī)則完全沒(méi)有這樣的顧慮,如使用云服務(wù)器,云服務(wù)器可以自行配置相關(guān)環(huán)境,而自由是把雙刃劍,安全但是價(jià)格高。
4、系統(tǒng)架構(gòu)
在系統(tǒng)架構(gòu)這方面,java毫無(wú)疑問(wèn)完勝,java擁有多種架構(gòu)選擇,常見(jiàn)的ssh框架即struts+spring+hibernate、ssm即spring mvc+spring+mybatis、sm即spring boot+mybatis都可以作為web應(yīng)用的框架選型,這些框架能夠很好的將后端模塊進(jìn)行分離,根據(jù)具體需求的不同選取不同的mvc層、業(yè)務(wù)層、持久層框架進(jìn)行開(kāi)發(fā)。有人說(shuō)php也可以做到,說(shuō)php有很多的框架也可以做到分層架構(gòu),thinkphp不就是國(guó)人開(kāi)發(fā)的php mvc框架么?php有框架這點(diǎn)毋庸置疑,但是php從語(yǔ)言特性上來(lái)講并不適合做框架,框架和面向?qū)ο缶幊趟枷胗泻軓?qiáng)的聯(lián)系,而php語(yǔ)言特性上對(duì)面向?qū)ο蟛⒉挥押?,這也就導(dǎo)致了php在框架這條路上其天花板與java相去甚遠(yuǎn)。在這里有些phper毫無(wú)疑問(wèn)會(huì)義憤填膺,但事實(shí)如此,php的語(yǔ)言特性偏向與面向過(guò)程,其旨在開(kāi)發(fā)特定的業(yè)務(wù)邏輯,這也是php適合web開(kāi)發(fā)的原因。又有人會(huì)說(shuō),php5.0之后也支持面向?qū)ο?,但事?shí)上php也是不得已而為之。