Java与PHP的区别
求职之前,一直觉得会被面试官问到这个问题,所以有所准备,发出来和大家讨论下:
- PHP面向对象特性不完整(如命名空间,方法重载,多重继承);
- PHP不支持多线程;
- PHP对Oracle等数据库支持不好,没有JDBC这样的统一接口;
- Java将源代码编译为字节码,依赖于各平台的JVM解释运行,而PHP是纯脚本执行编译,在效率上会有影响,不过目前也有一些解决方案将PHP编译为字节码;
- PHP与C、Shell等都有类似之处,上手快;
- 一般大学里只教授C++与Java,因此熟悉PHP的应届生并不多,因此有的企业选型也就偏向了Java;
- 最关键的是,Java和PHP代表了两种企业文化:Java阵营背后站着Sun、Oracle、IBM,从数据库、数据仓库、中间件等都有完善的商业解决方案,而PHP依托的Lamp平台更强调开源和DIY精神,需要使用者自行根据需求调优乃至Hack开源软件,因此银行等企业更倾向于使用Java解决方案,关注业务逻辑,其他上下游服务使用商业产品(尤其是在国内的行业背景,对于一些企业而言,与其冒着风险去投入人力做调优和预研,不如花钱做甲方,至少出了事情直接可以推到乙方身上,曾经有帖子说xx运营商研究院这类机构是运营商的乙方,但是又是其他外包服务公司的甲方,总之就是不会自己去做开发),而在互联网领域PHP应用广泛,在各大公司都有成功的实践,无论是开源组件的发布或是性能调优的交流都日益增多,这和Lamp本身的开源特性是分不开的,Lamp是完全透明可调优的,其中任意一个组件也是可替代的。