身邊老是聽到不少人在跟我說Java比PHP更好,也確實有不少大公司在使用Java,例如淘寶、京東,那麼當我反問他們緣由是什麼的時候,他們老是支支吾吾,或者一言以蔽之,我想研究學問不能人云亦云,要本身搞清楚纔好。java
PHP有各類框架:CakePHP、Yii、CI、……,但其實每種框架都尚未居於統治地位。tomcat
Java,據我如今的瞭解,只有兩套框架,J2EE重量級企業架構(EJB模式,有專門的應用服務器)和J2EE輕量級(本來是SSH,如今演變爲SpringMVC,應用服務器有Tomcat等,可是功能較弱,還有goldfish等,如今也有不少替代tomcat的輕量級服務器)。安全
WebSphere由IBM推出、WebLogic由BEA推出,都是很穩定,通過驗證的大型企業級中間件。服務器
Java有官方承認的工具包。架構
PHP有PECL和PEAR。app
這點基本打平。框架
參考:http://searchsoa.techtarget.com/definition/J2EE。函數
J2EE (Java 2 Platform, Enterprise Edition) is a Java platform designed for the mainframe-scale computing typical of large enterprises. Sun Microsystems (together with industry partners such as IBM) designed J2EE to simplify application development in a thin clienttiered environment. J2EE simplifies application development and decreases the need for programming and programmer training by creating standardized, reusable modular components and by enabling the tier to handle many aspects of programming automatically.工具
也能夠參考學習
https://zh.wikipedia.org/wiki/Java_EE,或者https://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition,可是明顯,英文版的講解的更加完整和細緻(維基百科的中文版是中國人本身翻譯的,爲了應付中國人?)。
這樣看來,正如以前所理解的,Java後面有Sun、IBM、BEA這樣的大公司在推動,有一套完善的生態環境,因此仍是要比PHP背景深厚。
參考:https://www.youtube.com/watch?v=B4klp5EKakk。
PHP全局變量會引入漏洞。
PHP編碼不統一,函數參數順序不統一等等。
PHP對於跨站攻擊和SQL注入的防範較弱。
PHP是爲了Web Server來設計的,更加開放和個性化一些;而Java是爲了企業級應用設計的,更加安全,規矩更多。
PHP是弱類型的,而Java是強類型的。
PHP的類能力相對較弱,而Java從出生就是面向對象的。
PHP的單元自測的實現不如Java。
Java有太多工具包來幫助開發。
PHP成名框架的企業級設計範式都是參考Java的規範,例如過濾器、攔截器,在CakePHP上纔有了體現,ORM如今在PHP框架中才有了體現。
Java的規範多,須要遵照的規矩多,但這也帶來了足夠的安全性。
整體感受Java確實要比PHP更加安全。
PHP是開源的,PHP下的各類框架也都是開源的。
JavaEE有不開源的,也有開源的。
由於java從出生就是針對企業級應用而來,又發展了這麼多年,因此在這塊逐步造成了不少的規則要去遵照,這勢必會形成很大的學習成本,不過,一旦掌握了這些規則,開發效率是會很高的,不少功能,不須要本身再去發明輪子了。