{eval=Array;=+count(Array);}
其實這個問題可以從三個方面來回答:
1.語法層
2.應用層
一、如何自學
從語法層來說,都是c語系。關鍵字,操作符,以及語句差別不大,都能跨平臺,都是基于解釋型的語言。
java是強類型,通用語言,可以用于客戶端,服務器端等各種環境。而php本身定位服務器語言,并且是弱類型語言。隨著時間的推移,你會發現,原本各種腳本語言越來越向面相對象,面相接口編程,并且逐漸向強類型過度的趨勢。
為什么呢?因為現在的程序越來越復雜了,不是幾句增刪改查能解決的。各種框架是建立在設計模式,mvc,mvvm等思想理念上的,要求你的語言支持繼承,支持多態,支持數據隱藏等等。所以php也在改革,改得越來越像java了。而且大型程序,強類型有著天然優勢,例如編譯器錯誤檢查,函數簽名自解釋,內存使用量小非常多,等等等等(例如typescript現在優勢逐漸顯示出來了)。所以我的結論,如果你一開始學,還是選java比較適合。個人建議而已!我不想引起語言之爭!
從應用層來說,不管哪門語言,學了語法就是掌握格式而已,真正的應用是需要很多基礎知識
首先,肯定是數據結構要掌握,你不會抽象結構,不會一些基礎容器操作,那根本沒辦法走遠。其次,業務知識。如果你做服務器開發,那么tcp/ip http等基礎協議至少要了解。各種常用類庫要會用。如過更加專業的領域,例如金融之類的,那么還需要行業知識。然后,面相對象和設計模式一定要多了解,多學習,多模仿,多應用。當然這個是靠你自學以及經驗的,需要慢慢累積。就是一句話,多動腦,多動手,多查資料
關于如何自學:
我個人經驗是選定一個開源項目就不要換,深入了解。
一定要學會跟斷點,各種調試方法。
分析項目的各個模塊,各個類之間的關系,為什么要這么做
一定還學會google,baidu。拼命了解術語和關鍵字。建立對代碼的敏感性觸覺。
以你所學源碼為基礎進行知識的學習。任何知識都是具有延續性(上下擴展)和延展性(左右擴展),隨著時間的增加,你會積累越來越多知識。
反正一口氣吃成一個胖子.那是不可能的!
擴展資料:
java語言的歷史已經非常悠久,一直處于大哥地位。這一方面是因為他是眾多語言的基礎,比如現在比較火爆的android,java就是android的基礎。學習java的人,可以很快轉入android的隊伍,足以看出,java的靈活性。其次,現在大多數企業都以java作為主流語言,如果你經常上網的話,就可以發現,許多網站都是用java做的。為什么呢?原因就在于,java適應性實在是太強了,任何一個平臺他都可以在里面游刃有余。1、java和php技術層面對比:
java是純面向對象開發,功能強大,分支眾多,沒有java不能做的軟件。C/S也好B/S也好。從功能上講,沒有語言可以和java相比。但其優勢也是其劣勢,具體參考第6點。
PHP屬于后起之秀,吸收了java和c以及perl等語言優點,專注互聯網領域。WEB領域PHP擁有得天獨厚的優勢,WEB領域沒有語言可以和他比。
兩者相比,基本上java完勝。但是其實并沒有太大的可比性,專注領域不同。單純拿兩者都可以做的WEB來說,PHP完勝。
2、java和php市場份額對比:
java語言算是古老,多年的發展,其在C/S領域和B/S領域都占有一席之地,特別是在電信和銀行行業。但隨著社會需求的變化和其他語言的專注,java的市場正被一點點蠶食,WEB領域幾乎被PHP一統天下,嵌入式領域幾乎被C++一統天下,客戶端領域幾乎被C語言一統天下,要不是安卓的出現,java的命運還真不好說了。其之前積累的巨大java帝國不會一下子崩塌,一定是有一個過程。所以現在學習并不需要擔心其前途,現在學習你更需要擔心的卻是近十年間英才輩出的javaer,和大批正在進入java陣營的同業者。
PHP在市場描述就比較簡單了,因為我們只要看一個領域,那就是web領域。WEB領域php的市場超過80%,其余的則是如java-JSP,asp,C#,.NET,python,ruby等。網站500強中有395家使用PHP。全球最 大的兩個網站facebook和新浪微博全在使用PHP。 兩者相比,算平分秋色。
3、java和PHP的發展空間對比
安卓勢頭很猛,但手機安裝app數量有限,推廣難,也是app面臨的最 大挑戰,好在安卓只有JAVA可以做,除此之外就是HTML5了。
中國人口占全球人口19.7%,中國網民占全球網民22.4%,中國網站數量占全球網站數量的0.5%,網站的可發展空間可謂巨大;發達國家互聯網對GDP的貢獻可達20%,中國互聯網對GDP的影響僅為3%??芍^互聯網的發展空間巨大,而互聯網離不開WEB,WEB離不開PHP。
兩者相比,個人覺得PHP的優勢更加明顯。
4、java和PHP的薪資對比
薪資事由供求關系決定的,人才缺失,薪資自然高,人才飽和,薪資自然不會高。
java由于大學基本都有這個課程,很多人想從事軟件行業的時候,自然就學習JAVA了,加上java近10年的火爆,人才輩出,整個java行業是處于供大于求的。南京地區:一個30人的java培訓班,最 后差不多10人找不到理想的工作而轉行,最 低薪資甚至只有1000多元,就有人肯干。當然java學的好的,薪資4000多也是不少的。
PHP完全依托于市場的驅動,難點在于很多人并不了解PHP,也沒途徑可以了解,根本原因是大學沒有這個課程,我知道的,南京百十所高校只有曉莊學院開了PHP課程,而且不是作為主修。市場對PHP的需求,高校并不清楚,高校更愿意推符合學院派特點的java。
學習php的人少,企業需求多,導致PHP薪資遠遠超過了同行業者。一般起薪沒有低于3000元的。南京地區高的早已經突破4500元。北上廣更是突破了6000元的起薪。
兩者相比:除了java工作難找,但只要找到了工作,高位線是差不多的,低位線JAVA明顯處于劣勢。
5、java和php的薪資漲幅速度對比:
java是公認的難,難上手,真正上手需要至少1-2年,而這期間都屬于學徒級別,薪資漲幅有限。2年后會有一個較大的漲幅,基本拿個6-7千是沒有問題的。
PHP是公認的簡單,上手極快,基本過了試用期就可以漲工資了,PHPer正常是半年漲一次薪資,前3年的幅度都還可以,1年5-6千,2年7-8千。3年能過萬的也大有人在。
兩者相比:其實php的前端優勢明顯,后段雙方區域持平。并不像很多人說的PHP后面難漲,PHP缺人,但更缺熟手。java也不像很多人吹噓的那樣高薪,兩級分化嚴重。其實也很正常,越難的語言,兩級分化越是嚴重。
6、java和php各自發展的瓶頸:
JavaEE體系曾經統治企業級軟件開發長達數十年之久,十年間英才輩出,但是Java語言本身卻越來越顯示出臃腫和分裂的態勢。使用Java是個昂貴的選擇,復雜的需求設計, 緩慢的項目進度,昂貴的應用服務器和維護難度使Java成為了一種廟堂之上的語言。而版本的分裂也使所謂的跨平臺特性成為了一句空話。
Java的特性使得它并不適合業務隨著市場快速變化的互聯網企業,WEB領域幾乎被PHP一統天下,嵌入式領域幾乎被C++一統天下,客戶端領域幾乎被C語言一統天下,要不是安卓的出現,java的命運還真不好說了。php的大中型系統開發,方便、快速、是java跟http://asp.net沒法比擬的, 還有php有很多如yaf,yii,ci等強大的框架, 中小型一般系統的開發,一個thinkphp就足于通殺java的ssh三大框架了。
PHP由于其簡單,快速開發等特點,也導致了開發復雜應用稍顯吃力,所謂成也蕭何敗也蕭何,PHP由于其關注應用層面,開發基本不需要考慮底層的東西,導致其開發快速,學習簡單;但也導致了學習PHP工作一段時間比較容易遇到瓶頸,PHP在5.3版本后加入了更為強大的擴展,通過PHP的擴展可以實現PHP本身實現不了的功能。
所以PHP開發遇到了這樣瓶頸,可以考慮通過擴展來解決,facebook和http://weibo.com正在大量使用擴展功能去應對一個又一個的難題。新浪微博架構師兼首席PHP技術顧問惠新宸一直在專注與PHP底層原理的研究和分享。擴展是被他認為PHP最偉大的地方。
一個非常好的問題。我是工作多年的Web應用架構師,來回答一下這個問題。歡迎關注我,了解更多IT專業知識。
從編程語言本身來說,Java和PHP差不多,出現在同一個時代,Java首次推出在1995年5月,PHP在同年6月。
兩種語言各有特點,20多年來都在不斷更新推出新版本,PHP現在最新版本7.4,官方計劃2020年底推出8.0版本。
2009年Oracle收購Sun公司后,Java發展得到了大力支持,現在使用非常多的Java8發布于2014年,當前最新版本是Java14。和早期版本相比,從Java8開始,吸收了越來越多的現代化編程語言的優點,比如lambda表達式。
Java是一種靜態面向對象編程語言,繼承了很多的C++優點,功能強大、簡單易用、跨平臺可移植,具有多線程、分布式等特點。入門學習不難,隨著項目經驗的積累逐步提升進階。
PHP是一種通用的開源腳本語言,吸取了C,Java,Perl等多種語言的優點,在服務器端執行,主要用于Web應用開發。
考慮發展前景的話,推薦學習Java語言。Java是當前的主流開發語言,應用普遍,Web應用、電商系統、企業信息管理等各種行業場景。
Java社區非?;钴S,各種文檔和學習資料非常豐富。因為使用廣泛,所以很多同事朋友溝通交流。
開發框架也是降低學習難度的有力工具,Spring框架是Java開發時常用框架,有非常豐富的組件和易用的功能,Spring Boot和Spring Cloud更是簡化了開發過程中的瑣碎工作,自動化配置依賴模塊、開箱即用和約定優于配置,這些特點使得Spring框架在快速開發領域非常受歡迎。
作為一名曾經4天學會PHP開發,3天學會Java開發,并且曾多次回答過PHP及Java相關問題的擼碼老手,我來談談我的看法:
開始兩者難度差不多,后來Java比PHP可能更難學。
剛看到這個問題的時候,其實感觸挺深的,為什么呢?因為我曾經以go開發的身份進入了一家公司,然后在這家公司先后學會了PHP和Java,看到這里可能有朋友就會噴我了,別人公司叫你來是干活的,不是叫你來學其它語言的,其實冤枉,我也是被逼的。
1、與PHP的淵源
先來說說PHP吧,本來公司就是打算招go開發工程師進行項目開發,后來發現go開發太稀缺了,一時半會也招不到人,然后當時公司的其它同事又都是搞PHP的,所以主管決定就用PHP進行開發吧,因此我就陰差陽錯地被迫學習了4天,然后就開始參與做項目。
其實那會我對PHP都沒聽過,所以當時是感覺有點后背發涼,畢竟每個人對于陌生的東西總是會缺少那么點底氣,后來聽主管說其實跟C差不多,然后就沒那么怕了,畢竟我也是C出身的,經過了幾天的熟悉,果然還是挺簡單的,做一些簡單的功能也是得心應手,畢竟PHP作為一門弱類型語言,真的非常簡單方便,不像其它語言那樣有嚴格的類型區別,所以很多想要快速成品的項目大都會選擇PHP開發。
每一門計算機語言都會有方便開發的IDE工具,那么我們當時的PHP開發工具就是PhpStorm,非常方便,并且 PhpStorm 完美支持 Symfony、Laravel、Drupal、WordPress、Zend Framework、Magento、Joomla!、CakePHP、Yii 等各種主流框架。
每一門計算機語言一般都會有成熟的框架,PHP也不例外,所以我們當時就選擇了全能的Laravel框架進行開發,它不僅在web接口端很簡潔,還能自動創建數據庫表,其實在PHP界,Laravel的聲譽可是挺不錯的,把它稱作是為WEB藝術家創造的框架。
除此之外呢,我們當時為了解決websocket的長連接通信,又請來了PHP界的另一尊大神——Swoole,它是一個面向生產環境的 PHP 異步網絡通信引擎,能夠使PHP開發人員可以編寫高性能的異步并發TCP、UDP、Unix Socket、HTTP,WebSocket 服務。
其實如果只是用PHP進行一般的項目開發,以上說到的這些東西全部學會了的話,基本就不成問題了。
2、與Java的淵源
經過半年的PHP開發,項目基本上線了,本想著該享受勝利的果實了,可是現實卻總是很殘酷,狠狠地甩了主管一臉,開發的項目不太適合那種請求量非常大的場合,即:高并發,后來經過協商,公司決定用Java重構一遍,當時此事還導致了一位同事辭職,因為他不想學Java,所以一攤子事全都倒向了我,于是浩浩湯湯地開啟了Java之旅。
其實Java相對于PHP來說,我并沒有那么陌生,畢竟以前在學校的時候學過一學期,只不過工作之后就沒再碰過,但是它作為一門面向對象的語言,當前熱門榜排行第一,并且多年霸占榜首,可見其受歡迎程度不一般,于是我也是信心滿滿,自學了3天后就開始重構項目,一切也是順風順水,難度也不是很大。
前面我們說到PHP有自己的IDE工具,那么Java呢?那必須有啊,作為這么受歡迎的語言,怎么可能沒有方便開發者的工具呢,我們當時并沒有用老牌的eclipse,因為它太重了,而是用的比較輕巧方便的 IntelliJ IDEA,說實話,如果想學習Java開發,這個IntelliJ IDEA工具絕對是你的編程利器,務必要會用。
前面我們也說到PHP有自己的框架了,那么Java有沒有呢?當然有了,當時用的就是比較流行的springboot框架,它的出現可謂真的大大降低了Java入門的門檻,作為普通的開發者可以不用去了解springboot背后的原理,但是如果想進階為高級開發者的話,很多框架背后的秘密我們都要去探一探。
其實Java的要求絕對是比PHP要高的,就算對于一個普通工程師來說所要學會的東西,絕對比PHP多得多,在這里我也沒法一一詳細介紹,只能稍微例舉一下,比如:跟數據庫打交道的mybatis、websocket的框架netty、微服務框架springcloud、消息隊列rocketMQ、分布式系統Zookeeper、分布式框架Dubbo、遠程調用Rpc等等。
相比PHP,Java要會的東西可多了,不過一般也不會太難,并且Java的前景應該比PHP要好,市場也更廣闊,但是Java的更新速度很快,有時候舊的都還沒學會,新的可能就出來了,所以想學Java也要做好心理準備。
通過往事的回顧,我將自己親身經歷吐露了出來,針對這兩門語言一開始怎么學,學什么也說了一個大概,我想誰難誰易,大家心中早已有了答案,但是我想說的是,不管學習哪一門語言,一定要走好這幾步:選好IDE -> 熟悉基本語法 -> 熟悉框架 -> 開發項目 -> 進階,希望我的答案能夠幫助到更多迷茫的人。
Java開發屬于是Java的全系列,而PHP是前端里的一部分,為什么前端要學習PHP和數據庫編程,雖然是純前端,但是如果不了解后端的一些機制和如何給我們提供的接口,對于日后前后端交互的理解則是越來越難。所以本階段為前后端交互打下基礎。
如果想學好這些的話還是得去參加系統的培訓,尤其是Java開發,我比較推薦的一個培訓機構就是北京尚學堂,他們的課程特別的完整深入,后面還有就業輔導和就業推薦,找工作也不用發愁了,根本就不存在什么難不難學,而是自己想不想學,有沒有興趣學,只要想學肯定可以學好學精的。
首先php確實是開發速度極快,為什么?
因為弱類型(php7有類型聲明選擇開關,只要引入開關指令declare(strict_type=1)就會強制當前的文件下的程序遵循嚴格的參數類型,返回值類型),不需要定義返回的類型,加上php實際開發過程中喜歡運用它萬能的數組來做計算,返回。所以他的動態擴展性非常強,如果返回值結構改變,沒關系,直接改數組結構就行(注意,php數組太強大,可以當作map,list來用,底層的實現其實是hashmap)
而java可能要開發過程可能要慢一點,java面向對象的技巧,設計模式會運用的更多一點。需要定義各類model來適應你業務的需求。編寫風格會有一定的統一要求。強類型在編寫的時候會比php麻煩,但好處是更安全,因為類型固定,潛在風險較低,還有編譯器給你做了一次保障。
本人10年開發培訓經驗,期間經歷了Java Web,Android,H5,大數據,PHP等多個不同的方向的開發,也做過軟件培訓公司的金牌講師,很有興趣回答你這個問題。
Java和PHP是兩種不同的開發語言,但是兩者也有很多共同之處,比如兩者都可以開發web方向的項目,兩者的語言都屬于面向對象編程,兩者都有很多的框架要學習。那么兩者對比起來,到底哪個更難學,雖不能一概而論,但是從大多數來分析,Java更難學一點。
Java作為面向對象的編程語言,它的語法規則更嚴格,要求更多,比php的面向對象限制的東西多。
然后Java體系里,再學習web方向的技術,框架,分布式的東西等等吧,然后java里的很多框架都是半成品,沒有php里的那些框架集成度高,php里的很多框架很多直接拿來用就能直接開發,所以就有了”php是世界上最美的語言“這樣蜜汁自信的一說。
當然java雖然難學,但是它的生態系統是別的技術所無法比擬的,做web開發還是首選Java。君不知,國內做PHP培訓最有名的機構--兄弟連,都倒閉了,說明了什么問題?用PHP開發的真不多!
我從事互聯網開發10年,主要的研究方向集中在Java web微服務架構領域,Android移動端研發,HTML5前端方向,我會陸續寫一些關于互聯網技術方面的文章,感興趣的朋友可以關注我,相信你一定會有所收獲。
如果有Java,Android,H5等開發方面的問題,或者是開發求職方面的問題,都可以在評論區留言,或者私信我。
7
回答0
回答4
回答3
回答0
回答3
回答10
回答3
回答10
回答3
回答