一、Java为什么如此火热?
成本
先说说开发者成本:Java的语法简单,没有很多的语法糖。 在语法入门上比较容易,
入门要使用的IDE,免费、小巧(虽然没有Visual Studio强大,但是对于新手入门来说,这个选项很重要),由于开源,社区的活跃度高,资料也多,这样的情况一方面不担心碰到问题无处求解,另一方面也有众多的交流平台
再说说经营者成本:Java可以部署在Linux Server上,Linux Server有免费的发行版。这个对比Windows Server节省一大笔费用。另外Java的黄金搭档MySQL企业版授权费比Oracle、SQL Server等也便宜很多,又生了一大笔费用,省下来的钱只要一小部分,就足以覆盖Linux运维工程师的雇佣成本,怎么算都是划算。
优秀框架的成长土壤
单从web应用开发来说,从最早的SSH(Struts+Spring+Hibernate)到现在的SSM(Spring+Spring MVC+MyBatis)Java平台生长了丰富多样的优秀框架,一方面Java在1.5以后的版本,性能上确实可圈可点。另外Java确实比较Open,虽然Sun公司的种种行为一次次宣告这是Sun的Java,但是Java平台各种标准的制定,可以让社区从各种方面参与完善Java生态。从Java虚拟机到编译器,再到工程构建工具,再到各种框架,以及各种类库等等,所以Java平台才有上好的优秀框架/项目的成长土壤。也诞生了这么多的项目Spring大家庭、Maven、Tomcat 等等,ken这才是Java平台最大的优势
热门效应
Java作为优秀语言&平台自然会受人追捧,Java也就成了受众最多的编程语言。
那么在技术选型的时候Java往往就排的最靠前,毕竟人多,好招聘。Java平台的优秀,加上大家的使用热情,确实会使Java平台越来越热。
就目前来看,Java平台优秀,且没有明显的短板,只要能不断生长出适应互联网技术发展的框架,Java生态还会持续不断的繁荣下去。
二 、Java的特点
简洁的语法
在面向对象的语言中Java的语法缺失比较简洁,没有明显的短板(比如像Python被大家吐槽的缩进机制),没有很多的语法糖。但这可能在一些工程师的眼中是短板,用惯了C#的工程师很可能会觉得Java缺少了很多好用的语法糖,开发效率上来说不够高效,算是有得有失吧。
良好的性能
面向对象的语言中Java的性能算是名列前茅了。比PHP、Python不知道高到哪里去。
这可能要归功于JIT,.NET之所以性能跟Java部分伯仲,相当大的原因就是.NET也有JIT.aspx)编译机制。
配置无处不在
Java的配置风格,深入到了几乎Java所有的框架。从JDK安装后JavaHome的配置。到Maven的配置、Tomcat的配置、IDE的配置,再到使用各种框架时各种xml的配置,可以说配置无处不在。这也是Java平台灵活之处。几乎一切皆可配置。由于一些框架的使用缺少一些缺省到配置,那么在上手的时候就必须了解清楚相关的配置,可能学习曲线会稍陡峭一些。
这也是Java平台最容易被初学者吐槽的地方。比如ken从.NET平台转战Java平台,一开始折腾了好久的配置文件。边吐槽边学习。
还好现在Spring大家族推出了Spring Boot,可以简化相当一部分配置,这是Java开发者的福音,最起码是ken的福音。
三、学习Java要做哪些准备?
- 基础的编程经验(.NET、PHP、Python等)
如果你是.NET工程师,建议先阅读下Java跟.NET的对比:https://ken.io/note/java-vs-dotnet
- Windows / Mac 作为开发环境
建议Windows,因为ken的开发环境是Windows,环境不同,操作会有差异
- IDE:IntelliJ IDEA
- Linux 基本使用(推荐 CentOS、Ubuntu)
虚拟机安装教程:https://ken.io/serie/hyper-v-courses
CentOS快速上手:https://ken.io/serie/centos7-quickstart
Ubuntu快速上手:https://ken.io/serie/ubuntu-quickstart
如果实在不具备搭建Linux环境的条件,Windows也可以,但是不推荐