身边老是听到不少人在跟我说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从出生就是针对企业级应用而来,又发展了这么多年,因此在这块逐步造成了不少的规则要去遵照,这势必会形成很大的学习成本,不过,一旦掌握了这些规则,开发效率是会很高的,不少功能,不须要本身再去发明轮子了。