clecho
2018-10-29 13:26:19 +08:00
我也是 php,但我周围同学都是做 java 的,他们也经常向我传教,所以我也看了一段时间的 java,不是很深入,可能比较片面,如果有说错的地方,还请路过的大佬指正。
1.首先 java 确实是目前市场占有率第一的,转 c#肯定是不可能的。c#虽然最近那个 croe 开源了,但短时间内肯定还是没办法和 java 抗衡。
2.java 和 php 作为 web 后端来看的话,java 比 php 强在多线程带来的并发处理上的优势(当然通过 swoole 的多进程也可以办到)、静态语言常驻内存,带来的定时任务,以及与其他硬件嵌入式程序交互的能力。单从简单 web 开发来看的话,其实两者相差并不大,差异点在于大型应用架构方面,java 有更多成熟的解决方案。
3.java 作为静态强类型语言比弱类型脚本语言带来的天生优势,强类型更容易纠错,java 啰嗦但严谨的语法让开发者不会写出很烂的代码,java 系的开发者多迷信各种设计模式,带来的更健壮的程序结构。(就我自己所感觉到的啰嗦繁杂在,php 里数据结构一个 array 走遍天下,java 里就要使用各种集合类,一个简单的变量类型操作都要包装成对象。但优点在于逼着开发者去重视规则与结构,很多 php 里底层封装好的功能,比如数组,数据库连接池,等等东西,在 java 这里他们都会自己对着源码再自己实现一遍,看有没有更好的实现方法,导致 java 很多基础功能如 json 等,他们都喜欢用第三方库,就像前端界强调的一样,轻量,小而美,渐进式框架。)
4.可以做些什么,如果你用的是 laravel、symfony、yii 等现代 php 框架,那么其实 java 中的 spring 等框架和他们都差不多,你需要学习的是语言和习惯方面的差异,比如 spring 的核心 ioc,在 laravel、symfony 中都是同样的核心。框架方面不需要花过多的时间,时间花在 servlet、jdbc、jsp 这些底层上就可以了。做一遍这些教程,再找一个 spring 系的开源项目,学习一下对方项目架构的写法,就差不多了。