兩個(gè)前景都很不錯(cuò),PHP適合初學(xué)者快速開發(fā),但是長遠(yuǎn)發(fā)展看,還是Java比較有優(yōu)勢(shì)的。但是選擇培訓(xùn)的時(shí)候一定要選擇合適的培訓(xùn)機(jī)構(gòu),不能盲目選擇,一個(gè)好的培訓(xùn)機(jī)構(gòu)能夠幫你快速的掌握開發(fā)技巧,節(jié)約大量的時(shí)間。在選擇培訓(xùn)機(jī)構(gòu)時(shí),不建議選擇達(dá)內(nèi),雖然名聲很響亮,又是上市公司,但是,達(dá)內(nèi)的教學(xué)質(zhì)量真的太差了。無法想象竟然全部都是遠(yuǎn)程視頻教學(xué),直接影響到教學(xué)質(zhì)量。

獨(dú)特的語法混合了C、Java、Perl以及PHP自創(chuàng)的語法。它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁。用PHP做出的動(dòng)態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用)文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。
1
2
3
<?php
var_dump(‘hello word’);
?>
這里的標(biāo)題寫的是談?wù)凱HP和JAVA的區(qū)別,其實(shí)是委婉的說法,其實(shí)別人是想聽PHP好還是JAVA好?。?! 從而從中找到存在感?。?!
因?yàn)橛捎谖沂菑亩嗄甑膒hp開發(fā)轉(zhuǎn)到j(luò)ava開發(fā)的。所以最,不時(shí)的有好幾個(gè)同事問我,你覺得java好還是php好。我每次的回答都是,各有千秋吧,各有各的好處,這是最實(shí)際的答案。
然后臨了,去想想到底都有什么差別。今天我就來仔細(xì)總結(jié)下,php與java到底有啥差別吧。
1. php即寫即用的。
也就是說每次只有一改動(dòng)完成,用戶立馬看到效果,而java則慢多了,代碼改動(dòng)完成后,要重新編譯,然后重啟jvm,中間耗費(fèi)的時(shí)間可是不少啊,而且重啟jvm過程可是會(huì)造成用戶響應(yīng)中斷的哦。
2. php寫東西快。
php可以說是非常敏捷的,一個(gè)需求給到,只要不考慮后期的性能和用戶量問題,那是相當(dāng)快速的,甚至你都可以不用框架,直接寫也會(huì)非??斓?,寫一個(gè)增刪改查功能,可能也就30-50行代碼就搞定了。而java就慢多了,首先要想一下用什么框架,目前基本上就是spring了,然后就是配置各種數(shù)據(jù)庫,過濾器,servlet,決定是用mybatis還是hibernate,然后考慮代碼之間的傳遞,然后考慮事務(wù)…… 然后不停調(diào)試,一改代碼可能就是幾分鐘的等待時(shí)間,可想而知。
3. php的表面思路更清晰。
什么是表面思路,就是你看到的東西就是真正做出來的東西,比如echo “hello world”,就是輸出hello world,而java則不同,你可能是寫response中,可能是寫在modelattribute中,也可能就是return了該字符串,然后不知道怎么的,它就顯示到頁面上了。
4. php占用內(nèi)存少。
php是進(jìn)程式處理問題的,占用內(nèi)存相當(dāng)少,可以說,你在一臺(tái)機(jī)器部署50個(gè)項(xiàng)目沒有任何問題,只要訪問量不上來,搞得定。而java就不行了,java每啟動(dòng)一個(gè)項(xiàng)目,本身就得耗盡許多內(nèi)存,比如在一臺(tái)8g內(nèi)存的機(jī)器上,一般跑上2個(gè)項(xiàng)目就差不多了。
5. 說了這php的好處,難道java就沒有好處嗎?那是不可能的。
6. java組件多。
我個(gè)人覺得單是這一點(diǎn)就蓋過其他所有優(yōu)點(diǎn)了,因?yàn)榻M件多,意味著用的人多,群眾的眼睛是雪亮的。所以,java一定是好的,它已經(jīng)積淀了太多的東西,不是一門新型語言能夠隨便替代的。你想要做什么,好好搜索java組件,可能都有你需要的功能,特別對(duì)于當(dāng)下最流行的大數(shù)據(jù)產(chǎn)業(yè),java更是占據(jù)一方。而php在這種場(chǎng)景就有點(diǎn)無能為力了。
7. java線程池,連接池,異步化方便。
其實(shí)這一點(diǎn)和第一點(diǎn)也很相似,也是因?yàn)榻M件多,所以要使用線程池連接池都很方便,這對(duì)于高并發(fā)高性能的場(chǎng)景來說,是絕對(duì)必要的。因?yàn)閖ava的運(yùn)行原因就是多線程的,所以不用每次都去初始化很多基本的東西,這省去了太多的時(shí)間,也因此大家可以忍受服務(wù)器啟動(dòng)的緩慢過程,因?yàn)橹挥幸淮?。而php則是多進(jìn)程的,每次都需要重新加載所有需要的代碼,也因此無法將一些常用數(shù)據(jù)保存在內(nèi)存,連接池也不大好做,異步操作更是一個(gè)大短板。
8. java是真正意義上的邏輯清晰。
因?yàn)?,java中,你可以從一個(gè)進(jìn)入可以借助IDE工具分析到最深層次的邏輯操作,對(duì)于每個(gè)字段,都可以清晰明了,這其實(shí)是接口和完全對(duì)象的一個(gè)使用優(yōu)點(diǎn)。而php則做不了或者說很少有人費(fèi)那勁去做這種事情,php可以說是半面向?qū)ο蟀朊嫦蜻^程開發(fā),所以,在調(diào)用過程中插入幾個(gè)自定義的函數(shù)調(diào)用是很正常的,那么你再想通過簡單的IDE去分析調(diào)用鏈就不那么容易了。比如,對(duì)于第三方提供的接口,php就很難清楚的看出接口返回了什么,除非你把它打印出來,但是打印出來也不一定對(duì),因?yàn)橛行┓祷刂档臄?shù)據(jù)不一定有體現(xiàn)。這對(duì)于理解代碼來說,增加了一個(gè)大大的門坎。
9. 雖說java編譯比較煩,但是可以為你提前發(fā)現(xiàn)錯(cuò)誤。
java的編譯的確比較耗時(shí),但是如果有明顯的錯(cuò)誤,編譯是不會(huì)通過的,這就給你一個(gè)重新檢查代碼的機(jī)會(huì)。而php則不會(huì),不管你寫得多爛,都不會(huì)給你提示什么,而許多時(shí)候,往往就因?yàn)樯賹懥藗€(gè);分號(hào),導(dǎo)致你排查數(shù)小時(shí)。
10. java遠(yuǎn)程調(diào)用方便,rmi,hessian,dubbo。
不管怎么樣,遠(yuǎn)程和本地調(diào)用都很方便的知道相關(guān)的信息,而且java的同語言調(diào)用不是采用純粹的http調(diào)用,而且維護(hù)一定的連接,從而大大提高性能。而php也有遠(yuǎn)程調(diào)用,但是相對(duì)來說就弱許多了。
其實(shí)沒有問題是沒有絕對(duì)的好壞的,存在即合理。只是應(yīng)用場(chǎng)景不一樣罷了。



皖公網(wǎng)安備 34010202600669



