早在1995年,Jame Gosling就设计出了Java。Java是一门以Class为单位,高度面向对象的高级编程语言。设计初衷是“写一次代码,在哪里都可以用。”
Java 第一个版本由太阳计算机系统有限公司(后来被甲骨文收购)发布于 1995 年,作为一种高级面向对象编程语言,Java 已经成为许多程序员开发和在线交付内容的首选编程语言之一。即便在其他编程语言你方唱罢我登场的历史潮流中,Java 依旧金枪不倒,还没过气,为啥?
Java这杯咖啡,为何如此醇厚?
为啥 Java 还没过气?
也就是说,如果你有一部安卓手机,几乎所有 App 都是用 Java 写成的。大型网站的后端,比如电商平台阿里巴巴,淘宝,京东也都主要使用 Java 开发。大型的企业级应用比如大型企业管理系统,CRM 系统,ERP 系统也可以用 Java 开发。
有关通信及网络的大型企业,比如移动、联通、电信、网通,有关金融行的大型企业,所有的银行、证券公司、互联网金融和大型管理系统,比如供应链,客户管理系统,物流系统主要的信息化都和 Java 息息相关。所以说,Java 几乎垄断了企业级应用的开发。
随着物联网的兴起,Java 也成为物联网(IoT)开发非常受欢迎的工具,因为它提供安全,可移植的代码,可以在任何地方使用。
现在越来越火的大数据,最主流的框架Hadoop的主要开发语言也是Java。所以不难看出,Java还是行业应用不可撼动的老大哥。
这杯咖啡,不仅好喝,而且实用。
此外,Java 受欢迎的原因,还有部分在于 Java 源代码可以编译成字节码,它可以在安装了 Java 虚拟机的任何服务器或者客户端计算机里运行。这意味着 Java 程序是独立于平台的 —— 它们可以在许多操作系统上运行包括 Windows,iOS,Linux 以及物联网操作系统比如 RIOT,Contiki 和 FreeRTOS。
相比之下,C 写的 iOS 程序将不能在 Windows 机器上原样使用。
并且,当运算量很大时,Java 的独特平台设计的好处就显现了出来。Java使用的虚拟机架构和独树一帜的 JIT 编译模式能大大提高它的运行速度。这也是为什么Java至今仍然是世界上最受欢迎的语言之一。
容易入门的编程语言
像许多流行的编程语言一样,学习 Java 相对容易,因为有许多可用的资源。它还有许多标准类库和大量的第三方库。对于有 C 或 Java 程序员使用集成开发环境(比如 IntelliJ IDEA)来帮助他们进行高效地编程。
这些 IDE 显著地改善了编程体验,并提供了调试这一重要帮助,对于初学者来说很重要 —— 没有比写了一些代码但是不知道错误在哪里更让人糟心的了!
拥有大量工作机会
根据 2018 年 Stack Overflow 调查显示,Java 是总排名第三的编程语言,36.3% 的调查者在使用它。许多不同类型的开发者使用它:
30.7%全栈开发者使用 Java
16.8%的前端开发者使用 Java
41.6%的后端开发者使用 Java
54.2% 的移动开发者使用 Java
技能分析平台 Gooroo 报告说 Java 有很好的工作机会,在美国每个月大约有 17,000 个职位广告,平均薪资为 100,000 美元。在世界上,每个月大约有 30,000 个职位广告,平均薪资为 90,000 美元。
某些国内头部互联网企业,3 年工作经验的 Java 工程师,月薪最高可达 30k。
需要具备以下技能:
1、熟练掌握Java基础,熟练掌握多线程开发技术,熟悉软件开发流程;
2、熟悉主流Java开源框架如struts、hibernate、spring;
3、熟练掌握HTML/CSS/Java/jquery/Ajax;
4、熟悉Oracle/ SQL Server/MySQL其中的一种,并能熟练编写SQL和存储过程;
5、熟悉Linux系统,掌握Linux命令。
如何开始学习 Java ?
学习任何一门编程语言,都是为了去实现一个个项目,来解决实际的问题。无论项目是大还是小,都关联着许多知识与技能。
例如要用 Java 写一个「文件资源管理器」的桌面应用,就需要MVC设计模式、组件化构建、对象集合及操作、打包与部署、多线程遍历与异步I/O操作等知识模块。缺少任意一个模块,都难以完成一个项目。
所以完成一个项目,就像是在完成一张拼图,要把一个个知识模块搞定,再拼成一个项目,这样「项目驱动式」的学习,是目前公认高效的编程学习方法:
容易入门:只要掌握了基本的知识和编程技巧,就具备了完成简单项目的能力,就可以开始使用这种学习方法。
缺哪补哪:在动手做项目的过程中,就可以检验自己的学习成果,发现自己欠缺的知识模块,针对性学习更高效。
有成就感:学习的成果,体现为一个个可解决实际问题的项目,让学习得到即时反馈,成就感爆棚!
要注意的是,项目驱动式的学习,项目选择要循序渐进,每个项目既要包含之前学过的知识模块,又要有新的知识模块让自己来学习。