很多朋友在初学编程时,经常会有这样的苦恼,在种类繁多的诸如C、C++、C#、GO、Java等开发语言中,到底该选择哪种开发语言来作为自己的主攻方向呢?
作为有多年开发经验的IT从业人员,我个人比较推崇通用编程语言C++和Java,这两门语言长期占据着全球开发语言排行榜的前两位!今天我们先来介绍一下Java开发语言。
1、概述
多年以来,Java始终高居很受欢迎的编程语言榜首位,很多科技公司都是使用Java来开发软件和应用程序。Java是Web系统后台开发的首选语言,也是大型互联网公司必备的开发语言,社会需求量很大。
Java具有面向对象、分布式、健壮性、安全性、平台独立与可移植性(运行在Java虚拟机上)、多线程、动态性等特点,拥有很好的跨平台能力,是一种强类型语言。可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等,是很多程序员最喜欢的编程语言。
Java也是封装性比较强的语言,几乎封装了所有常用的功能,比如常用文件的上传与下载、邮件的接收与发送、JSON操作库、线程池、数据库操作等功能,这些功能以jar包的方式提供,简单易用,还具有良好的扩展性。开发人员只需要根据自己的业务需要,将这些功能组装起来就好了!
除了Java开发人员,做接口测试和自动化测试的测试人员也会使用到Java,使用Java编写测试脚本和测试代码。
所以学好Java语言后,可以从事Web后台开发工程师、大数据工程师、安卓APP应用程序开发工程师、自动化测试和接口测试工程师等岗位。
2、Java的技术体系
开始学习Java时,我们都要从比较基础的学起,包括面向对象特性、基本数据类型、抽象类、接口、GUI图形编程、IO、网络编程等知识点。其中,GUI图形编程,主要用于桌面应用程序的开发,现在很少有公司在使用Java开发桌面客户端程序了,所以只需要大概了解一下,不必深入研究。
学完这些基础知识点之后,我们一般需要了解一下用于Web前端编程的Html、CSS、JavaScript等相关知识,生成动态网页的Jsp和Servlet也需要了解一下。
这些知识点掌握以后,就需要研究Java的框架部分了 。最早使用的框架是SSH,即Struts+Spring+Hibernate,其中Struts用于流程控制,Spring用于业务流转,Hibernate用于对数据库的操作。目前这个框架已经很陈旧了,基本不用了,但还是要了解这个框架的实现思路和核心思想的。
现在常用的框架是SpringMvc和SpringBoot,这两个框架也是我们必须要掌握的。掌握上述基础与框架之后,基本就可以轻松应对Java相关的工作了。
在掌握上述Java体系技术点以后,我们在日常的开发工作中还会用到很多中间件技术,比如应用服务器JBoss、缓存技术Memcached和Redis、负载均衡Nginx、消息队列RabbitMQ、Kafka、Dubbo、Zookeeper等、Mongodb之类的非关系数据库、分布式框架Hadoop、应用容器引擎Docker、大数据计算引擎Spark、云计算平台OpenStack、分布式文件存储系统Gluster和FreeNAS、项目构建Maven、Gradle等、代码管理Git、持续集成Jenkins等。熟练掌握这些技术点,是从初级工程师到中级工程师,到高级工程师的必经之路。
3、Java语言与大数据
Java是目前使用最为广泛的编程语言之一,很多大数据处理技术与框架都是用Java写的。分布式文件系统框架Hadoop,就是用Java开发的,在分布式环境下提供了海量数据的处理能力,Hadoop已经成为大数据的标配框架。
高性能、面向列、可伸缩的分布式存储系统HBase也是用Java开发的,利用HBase技术可在廉价PC Server上搭建起大规模结构化数据集群。开源分布式数据库管理系统Cassandra、为云构建的分布式RESTful搜索引擎Elasticsearch也都是使用Java实现的。因此Java是大数据工程师最喜欢的编程语言。想学好大数据,掌握Java基础是必不可少的。
4、Java语言的IDE开发环境
(1)IntelliJ IDEA(最好的Java开发环境,五星推荐)
IntelliJIDEA由捷克JetBrains公司(由三个俄罗斯天才程序员在捷克创建的公司)出品的最为重量级的IDE开发工具,主要用于Java开发,集成了广泛通用的组件,可以用于Web和安卓移动应用程序开发。
IntelliJ IDEA在业界被公认为很好的Java开发工具,是广大软件开发人员最喜爱、也最为推崇的一款IDE开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。
它的旗舰版本还支持HTML,CSS,PHP、MySQL,Python等。免费版只支持Java等少数语言。
很多使用过IntelliJ IDEA的同事,都深深地被IDEA折服,均表示这是见到过的很好用的Java语言的开发环境。
(2)Android Studio
开发安卓系统上运行的APP应用程序,一般都会使用Google的Android Studio开发环境。Android Studio是谷歌推出的一个用于开发Android APP应用程序的集成开发工具,它也是基于IntelliJ IDEA开发的。谷歌在IntelliJ IDEA社区版本的基础上剔除了其他的功能,添加了支持Android开发的插件,可以说Android Studio是弱化版的IntelliJ IDEA。
(3)Eclipse
IBM的Eclipse是被广泛应用的免费开源的Java编辑器和IDE。Eclipse对Java进行的深度设计,拥有功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,对HTML、Struts、JSP、CSS、Javascript、SQL,Hibernate,Spring等做了完整的封装,利用它可以很好的提高Java开发效率。
Eclipse有很好的插件机制,支持各种各样的扩展和插件,比如SpotBugs、Checkstyle等。另外,Eclipse也是一个跨平台的IDE,支持Windows、Linux和Mac OS X等系统。
(4)MyEclipse
MyEclipse是在Eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。在最新版本的MyEclipse中,配合CodeMix使用支持也十分广泛,尤其是对各种开源产品和主流开发框架的支持相当不错。目前已支持PHP、Python、Vue、Angular、React等语言和框架开发。