從PHP到Java。有什么建議嗎?
我不會在學習語言的同時嘗試學習IDE。一個簡單的過渡是堅持使用shell和慣用的文本編輯器,并使用以下shell友好的工具:
ant,用于組織項目,運行自動化測試套件,增量編譯BeanShell用于交互式測試,可以快速嘗試一個快速的技巧:javap從命令行將為標準庫中的任何類提供方法簽名。與PHP -rJava 相似,但提供了更多信息。Java的在線文檔是精確,專業的,并且在色調和格式上保持一致。與PHP中的所有功能都位于一個統一的命名空間中不同,Java中的標準庫是類層次結構。您必須了解圍繞該標準庫的方式,這意味著了解層次結構和職責:例如,您必須了解這java.util.List是java.util.Collection帶有附加條目概念的子接口。有了這些信息,谷歌搜索java.util.List會將您帶到該類的Javadoc,并且Javadoc將告訴您確切的方法簽名并將您鏈接到一些具體的實現。
一些其他區別:
字符串是 字符 序列,而不是字節序列。絕對正確的方法。系統產生并使用(字節或字符的) 流 ,而不是字節緩沖區。例如,如果要過濾PHP中的輸出,則標準做法是向ob_get_contents請求字節緩沖區,然后轉換整個緩沖區。在Java中,您向Servlet添加了一個過濾器,該過濾器一次將輸出轉換為一個字節或一個字符。最初使用它有點麻煩,但是當您習慣它時它會變得更簡單,更像Lego-流處理器不必知道事物的來源和去向。幾乎所有有用的東西都是一個接口,并且創建接口的實例可能很棘手,不規范,而且記錄不完備。在PHP中,您可以使用來啟動并運行XML new DOMDocument()。在Java中,它org.w3c.dom.Document是一個接口,因此new()不起作用。Javadoc對于接口實例一旦存在就如何行為是非常精確的,但是當您試圖找出對象的實際出生方式時,它可能會顯得有些y和謹慎。很多時候,您將不得不尋找教程和代碼示例,并復制粘貼一個樣板,為您提供DOMDocument java.sql.Connection或其他實例。像Spring這樣的框架之所以受歡迎,原因之一是它們將丑陋的對象創建代碼分離開來,并為您提供了一個神奇的接口實現世界。我實際上是朝相反的方向切換。我發現Java在一家大型公司中運作良好,您可能正在處理單個組件,然后將其交給其他人,后者將該組件集成到更大的系統中,然后將其打包并交給一個單獨的運營團隊-所有這些間接性和可配置性(FactoryBuilderFactory類型抽象,web.xml文件等)都很有意義,并且可以做一些有用的事情。在一家小公司的程序員_都_操作人員,Java還有很多工作要做。使用Java,您將必須習慣一些概念,例如啟動Java進程,監視Java進程以確保其正常運行,監視Java進程以確保它不會處于存活狀態,而不會引起昏迷。在更新代碼等時,不進行響應,關閉和重新啟動Java進程,而將中斷降到最低。如果您有單獨的運維人員,那很好,這是他們的工作,他們非常擅長。如果您是一名程序員,那么照顧Java流程可能會分散注意力,并且很難做好。
解決方法最近三年,我一直在用PHP進行Web應用程序開發。我現在快要嘗試Java。我最近一次使用該語言是在8年前,而且大部分是學術性的。
我對PHP的對象模型(版本5)相當熟悉,并且我幾乎完全是在OO中進行編碼的。我現在想傳達這種經驗并將其用于Java開發。
我來自哪里:
linux作為桌面和服務器Vim / gVim +插件作為編輯器MySQL的數據庫apache httpd一堆PHP框架的使用經驗,Zend + Doctrine是我使用最多的框架到目前為止,我對Java的了解:
我需要一個IDE:IntellijIDEA,NetBeans或Eclipse我需要選擇一個開發框架。一些經常使用的名稱:Spring MVC,條紋,檢票口。現在,我需要一些見識,可以幫助使過渡更加順暢。但是從人們談論它的方式來看,Java似乎是具有自己的生態系統的全新野獸。聽起來好像實際上遷移到Ruby或Python會更容易,這很好奇,因為從我的角度來看,Java在概念上似乎最接近PHP,盡管更為嚴格和預先編譯。
聽起來可能很奇怪,但很少有人公開記錄過自己的舉動經歷。我已經在google,amazon和stackoverflow上搜索了類似的問題,結果令人向往。我只是簡直不敢相信,如果我想以Java的速度快速發展成為Web開發人員,我將需要像新手一樣開始。
歡迎任何人回應,但我認為有些人在兩種語言上都有寶貴經驗將使這次討論最豐富。
是什么幫助您快速掌握Java? Java中不存在哪些概念,而PHP中卻缺少哪些概念,反之亦然?PHP開發人員使用Java的一些陷阱。您覺得轉換完成多久了?相關文章:
1. javascript - jquery怎么給select option一個點擊時觸發的事件,如圖 如果選擇自定義觸發一個時間?2. javascript - 怎樣限制同一個瀏覽器不能登錄兩個賬號3. nginx配置server模塊的問題4. java - android代碼重構:如何把app設置里的頭像UI做成通用的?5. 想找個php大神仿個網站。6. java - 新手做一個安卓視頻播放器,想實現一個進度條,按鈕那種在視頻下方懸浮的功能,不知道思路!7. javascript - angular和jquery都用到了$符號,一起用會不會沖突?8. css3 - Typecho 后臺部分表單按鈕在 Chrome 下出現靈異動畫問題,求解決9. mysql優化 - 關于mysql分區10. 如何將行內塊元素的內容垂直水平兩個方向居中?
