大多数人选择Java可能只是因为听说Java前景好、Java比较好找工作、Java语言在TIOBE排行榜上一直位于前三等等之类的原因,但是Java具体好在哪里,心里却是没有什么概念的。
其实我选择Java也是出于以上的原因,但是现在确实真正地爱上了Java。
一、我们为什么选择Java
那么现在我们来分析下Java的好处究竟在哪里。
1、简单易学
首先Java是一个面向对象的编程语言,容易理解。而且略去了多重加载、指针等难以理解的概念。并且实现了自动垃圾回收,大大简化了程序设计。
其次Java学习资料较多,网上很多在线学习平台就可以找到很多Java学习视频,另外也有一些培训机构提供的有免费的Java视频课程。有这些学习资料,入门足矣。
2、跨平台
跨平台是Java的优势。Java运行在JVM(Java虚拟机)上,在任何平台只要安装了JVM。Java就可以运行。它架构在操作系统之上,屏蔽了底层的差异。真正实现了“Write once,run anywhere”。
3、安全
Java中没有指针,这样就没有办法直接访问内存了。另外Java也不容易出现内存泄露。
4、多线程
Java内置对多线程的支持,可以方便地在程序中实现多线程的功能。不像其他不支持多线程的语言,需要调用操作系统的多线程功能才能完成多线程的实现。
5、有丰富的类库
Java从出道至今已有20多年的历史,经过20多年的积累和沉淀,出现了很多优秀的开源社区,如Apache和Spring。这些优秀的社区提供了很多非常好的框架,借助这些框架可以使我们不用去关注Java底层的开发,而只需关注业务的实现。
6、使用广泛
不得不承认上面有一点是对的,Java确实有很多企业在用,而且都是用在大项目上。这就意味着Java方面的工作比较好找,另一点是在做Java开发时如果遇到问题,可以很容易从网上找到解决办法。
二、职业篇
Java初级程序员是层的,只需要掌握Java的基础知识就能够成为一名初级程序员。
Java程序员可以有三个进阶方向,分别是Android移动端开发(以下简称Android)、Web开发(以下简称Web)和通讯开发。这时目前主流的三大方向。其中最多的是Android和Web。下面分别介绍这三个方向。以下三个方向都需要有扎实的Java基础。
Android开发,主攻移动端应用的开发。移动端包括搭载Android系统的手机、平板、电视盒子等设备。
Web开发方向,主要有HTML5开发、B/S应用开发、微信开发。这里的HTML5开发是指移动端的HTML5开发。
通讯方向,主要是通讯服务器的开发,如游戏服务器、腾讯的QQ服务器等。
由于我从事Web开发方向,仅仅对其他方向略有了解,所以这里主要介绍Web方向。要进行Web开发需要达到中级程序员的水平,能够熟练使用SSH等框架。
而Java*级程序员则需要了解更多的框架和一些常用的应用服务器,如工作流、搜索引擎、缓存、JTA、JBoss、WebLogic等。
达到*级程序员水平后,很多人在这个阶段选择了不同的方向。有的人厌倦了编码和设计而转向了需求分析和产品经理,而有的人继续执着于技术这条路,成为了系统架构师。
三、工具篇
子曰“工欲善其事,必先利其器”,有一把顺手的“兵器”,能让我们的学习和工作达到事半功倍的效果,那么下面我们来看看有哪些好用的工具可以助我们开发。
文本编辑器(适合初学者)
这里我们只说Windows平台下的文本编辑器。
有人可能说Windows下的记事本不就可以用吗,我们为什么还要用其他的文本编辑器呢?原因吗,首先记事本确实不好用,修改代码极为不便,而且有些换行标识不识别;其次效率低,使用记事本打开一个几K的文件可能没有什么感受,但是打开一个超过10M的文件的时候就能明显的感觉到卡了,比如我们的日志文件;最后容易出现问题,用记事本编辑过UTF-8格式的文件后,会给文件加上BOM头,这有时导致程序出现莫名的错误,所以作为程序员,**不要使用记事本。
比较好用的文本编辑器有Editplus、UltraEdit、Notepad。其中Notepad是开源免费的,其他两个都是收费的。
IDE(适合入门后和项目研发)
IDE是集成开发环境的简称,使用IDE的目的是为了能让我们更快地构建项目、更方便地写代码,同时屏蔽了代码编译的动作。IDE都有代码高亮、代码提示以及错误提示等功能,同时我们可以借助IDE的插件实现代码管理、代码审查和其他一些好用的功能。
常用的IDE有Eclipse、NetBeans和IntelliJ IDEA。前两者都是免费的,后者提供有社区版本,也是免费的,但是企业版是收费的。其中Eclipse是用的最多的IDE。
在Eclipse上扩展的有两款优秀的IDE,Spring Tool Suite(STS)和大名鼎鼎的MyEclipse。前者免费后者收费,后者集成了前者的所有功能。这里我建议大家使用STS,因为STS添加了很多对Spring的相关支持,如果项目中用到了Spring,使用起来会非常方便。也可以在Eclipse上安装STS插件,能够达到同样的效果,Spring官网上有插件的安装方法,这里不再赘述。