Java 是一种跨平台的、面向对象的高级编程语言,主要用来进行网站后台开发和 Android APP 开发。
Java 是全球最受欢迎的编程语言之一,在世界编程语言排行榜 TIOBE 中,Java 一直霸占着前三名,有好多年甚至都是第一名。
![](https://i-blog.csdnimg.cn/blog_migrate/a49ddc1fff1f86094bb32b7d2b592a04.jpeg)
JetBrains 每年都会发布一个开发者生态系统调查报告,根据该报告的统计数据,最近几年全球约有 1/3 的专业程序员将 Java 作为主要编程语言,这一比例在我国更是高达 1/2,我国也因此成为全球 Java 程序员最多的国家,没有之一。
JetBrains 是一家总部位于捷克的 IDE 开发商,大名鼎鼎的 IntelliJ IDEA、PyCharm、WebStorm、CLion、PHPStorm 就是出自 JetBrains 之手。
我国互联网产业的发展非常充分,市场对于程序员的需求量也巨大,这其中,Java 程序员的需求最多,占到全部需求量的 60%~70%。
Java 之所以能够走上神坛,主要还是抓住了互联网发展的两个重要风口:
2010 年以前是 PC 互联网时代,Java 是中大型网站开发的首选语言,百度、淘宝、人人网、Google、Facebook、YouTube 等著名网站都在使用 Java。
2010 年以后智能手机兴起,全球进入移动互联网时代,Java 几乎是 Android APP 开发的唯一编程语言。直到 2017 年,Android 才正式将 Kotlin 作为官方开发语言。
此外,大数据技术是当今最流行的话题,也是未来的发展趋势,开源软件 Hadoop 是大数据处理的热门框架之一,它就使用 Java 语言编写,这使得 Java 在大数据领域也有重要的地位。
你看,Java 抓住了软件产业发展的三个重要风口,想不火都难。站在风口上,猪都能飞起来。
作为一种通用型的语言,Java 能做的事情有很多,具体包括:
网站后台开发
Android APP 开发
大数据开发
客户端程序(PC 程序)开发
嵌入式开发
在这几个开发方向中,网站后台开发人数最多,估计占到一半以上;其次是 Android APP 开发,从业人员也众多;接着是大数据和客户端程序开发,相对来说人数就少了;至于嵌入式开发,现在已经没有人使用 Java 了。
网站后台开发
能够进行网站后台开发的编程语言有很多,包括 PHP、C#、Java、Ruby、Python、JavaScript、Go 等,其中 Java 市场份额最大,更适合中大型 Web 项目,这是因为:
Java 是一种半编译型语言,开发比较方便,性能也不算差;
Java 生态繁荣,拥有庞大的类库和框架,大部分常用功能都有人帮你封装好了;
Java 能够很好地进行模块化开发和分布式开发,更有利于团队管理和协作。
从某种程度上说,Java 几乎是中大型网站开发的唯一选择,因为中大型网站既需要团队协作,也需要部署到服务器集群,而随着 Spring Boot 和 Spring Cloud 框架的成熟,Java 在模块化和分布式方面拥有了得天独厚的优势。
使用 Java 开发的著名网站真是太多了,数不胜数,Google、Facebook、Amazon、淘宝、百度、携程等国内外巨头无一不在使用 Java。
Java 的火爆也催生了大量线上/线下培训班,其中绝大部分都是针对 Web 后台方向。没办法,Java Web 岗位需求量太大了,曾经一度供不应求。
各位读者如果想学习 Java,我也建议选择 Web 开发方向,毕竟工作岗位多,薪资待遇高。
为了帮助大家找到一份靠谱的 Java Web 开发工作,我们特地制作了一套《Java 开发学习路线完整版》,它坚持实用主义,追求前沿技术,不但为初学者规划好了具体的学习步骤,还为初学者指明了常见的陷阱和困难。
Android APP 开发
Android 手机从 2010 年就开始爆发了,但是直到 2017 年 Android 官方才推出自己的编程语言 Kotlin;在这之前,Java 是 Android APP 开发的唯一语言。
在 Android 手机快速增长的前几年,APP 开发人员曾经一度供不应求,各家公司也相互抬价来哄抢人才。
除了手机,还有很多其它智能硬件也使用 Android 作为操作系统,包括平板、电视、汽车等。
但是随着智能手机增量的放缓,以及 APP 的饱和,市场对于 Android APP 开发人员的需求也逐渐降温了,大概从 2016 年以后,Android APP 开发人员就不再吃香了,慢慢回归理性了。
使用 Java 开发的 Android APP 太多了,比如抖音、快手、微信、淘宝、Facebook、Instagram、WhatsApp 等。
大数据开发
大数据技术是当今最流行最热门的话题,它也是未来的发展趋势。大数据技术用来从不规则、大规模的数据集中分析和提取出有用信息。
开源软件 Hadoop 是大数据处理的热门框架之一,它就使用 Java 语言编写,要想熟练地使用 Hadoop,就得掌握 Java。
相比其它编程语言,Java 在垃圾自动回收、堆内存和栈内存分配方面拥有更大的优势,这使用 Java 更加适合处理大数据集。
除了 Hadoop,还有很多其它基于 Java 的大数据工具,比如 Apache HBase、ElasticSearch、Accumulo 等。
客户端程序
客户端程序也叫“GUI 程序”,是指运行在 PC 上的、带有操作界面的、可以进行安装的软件,比如 QQ、迅雷、360 等。
Java 附带了 AWT、Swing 和 JavaFx 模块,它们都是用来开发 GUI 程序的。这些模块提供了丰富的 API,能够让我们开发出复杂炫酷的界面,比如选项卡、表格、颜色拾取器、树形菜单、3D图形等。
使用 Java 开发 GUI 程序的真实案例:
Adobe Acrobat Reader
ThinkFree Office
Eclipse
IntelliJ IDEA
NetBeans
但是随着云计算的发展,以及 Web 前端的强大,很多常见功能都可以通过网站来提供了,客户端程序已经不再是各个互联网公司率先考虑的平台,只有那些运算量大、数据量大的项目,才会考虑开发客户端程序。
互联网的冲击使得客户端开发成了一个没落产业,选择这个方向的人越来越少了。
另外,客户端开发的技术路线也有很多,包括 C/C++、C#、Electron、Python、易语言等,Java 只是其中之一,并且不算主流的技术路线。
如果读者对客户端程序开发感兴趣,可以关注一下《C/C++ Windows 软件开发学习路线》,它将告诉你使用 C/C++ 开发一个客户端程序的完整流程。
嵌入式开发/功能手机开发
Java 有一个裁剪过的版本,叫做 J2ME(Java 2 Platform Micro Edition),主要用于嵌入式系统或者功能手机的开发。
嵌入式系统是完整工业产品的一部分,由微型芯片、微处理器等构成,它们往往比较廉价,性能不高,所以一般被当做低级系统。
Java 能够有效且快速地处理程序异常,因此它也可以开发运行在低级系统上的应用程序,比如 SIM 卡、蓝光 DVD 播放机、机顶盒上的控制程序。
早期的功能手机也可以看成一个嵌入式系统,在智能机还没有大行其道之前,还记得摩托罗拉、诺基亚手机上的小游戏吗?这些就是使用 Java J2ME 开发的。另外,诺基亚上流行的 WhatsApp 也是用 J2ME 开发。
咳咳,Java 嵌入式开发这个方向已经死透了,大家了解一下即可,不要再去学习或者研究了。