不用怀疑,Java的地位确实根深蒂固
编程语言千千万,但在编程江湖屹立不倒的没有几个,Java便是其中的佼佼者。
对于Java这种“王者”级别的编程语言,不少人开始讨论“如何推翻Java的统治地位”。
△截图来源知乎,如侵删
看到这个问题,程序员们坐不住了,纷纷表示要推翻Java根本没戏,除非把Java名字改了。
△截图来源知乎,如侵删
其实,自Java诞生起,质疑它的声音就此起彼伏,但一直没有撼动它的江湖地位。黑马君认为,在探讨如何推翻之前,我们不妨先看下Java是如何统治编程界的。
Java的统治地位
从1995年诞生的Java,已经稳稳走过了27年的发展岁月,不管有多少后起之秀,Java自屹立不倒,常年霸占各大编程排行榜的前三名。
凭借着自身的语言特性(安全性、面向对象、分布式、多线程、动态性等),Java成为了很多大型软件开发的首选语言。据统计,Java被使用在90%以上的服务器中,无论是大型网站的后端开发,还是大型的企业级应用,甚至是金融服务行业,都在使用Java。
因为Java坐拥着最大的市场需求,还被称为编程界的“常青树”,也因如此,Java吸引着越来越多的人学习,目前,每年仍有数十万人加入Java开发大潮中来。
所以,不管是自身特性,还是应用领域,亦或者使用人群上,Java都有很强的生命力!持续火爆20多年,至今愈战愈勇,欣欣向荣!
一直被质疑,从未被打倒,这就是Java的生存现状。因此,至少在10年内,Java很难被推翻。
现在学Java
依旧很有qian途
Java江湖地位高,学它的人数众多,不免让很多新人感到迷茫,因为担心相关人才的饱和度,担心找不到满意的工作。
其实,这个担心对初级Java开发师来说,确实是一个烦恼,因为企业早已不招只会crud的程序员,现在各个企业的招聘需求中,一般都是需要有项目经验的中高级程序员。
对中高级开发工程师的招聘需求量还非常大,据第三方平台统计,企业对Java开发人才的需求量每月便新增10万+!
△截图来源职友集,如侵删
随着技术的发展,开发水平的进步,企业对Java开发的要求越来越高,相应的企业给出的招聘薪资也是水涨船高,更重要的是,现在互联网行业持续下沉市场,目前Java开发工程师不仅在一线城市受企业青睐,在新一线、省会城市更是香饽饽。
所以,无论是需求量还是就业薪资,Java开发工程师都是一个发展前景不错的岗位。
什么是java?Java语言的诞生与演进,Java 特点!
Java呢是于1995年由Sun公司推出的一个极富创造力的面向对象程序设计语言。这门语言,不仅仅是一种技术,更是一场程序设计的革命。
作为一名热爱技术的程序员,一直对编程语言充满好奇。
它呢是由Java之父之称的Sun公司研究院院士詹姆士·戈士林博士亲手设计而成的。
当时呢戈士林的小组在致力于为未来的智能设备开发出一种新的编程语言。
但是,戈士林对C++的执行过程中的表现非常的不满,于是啊,他就把自己封闭在了办公室里编写了一种新的语言。
这种新的语言编写出来之后起名字又成了头疼的事。那正巧,戈士林办公室外正好有一棵橡树,而橡树的英文名字叫做Oak。好那就叫Oak吧。
这时候,这个Oak已经具备了安全性、网络通信、面向对象多线程等特性,它是一款相当优秀的程序语言。
可是后来,由于去注册这个Oak商标的时候,他发现这个名字已经被另外一家公司注册了。所以就不得不改名。但是要取什么名字呢,工程师边喝着咖啡边不停的讨论。
这时候,大家看了看手里的咖啡,在想到印度尼西亚有一个重要的盛产咖啡的岛屿叫做爪哇岛。好吧那干脆就叫Java吧。于是Java语言就诞生了。
Java的标志就是一杯飘着热气的咖啡,象征着它的活力和全球普及。
Java是一种通用解释方式的执行语言。它的语法和C++类似,但不同于C++糟糕的可移植性。
Java是一种跨平台的程序设计语言,用Java编写的程序可以运行在任何平台和设备上,比如Windows平台、个人电脑、Unix平台即服务器、iOS系统也就是苹果的电脑及其各种微处理器平台,真正地实现了一次编写,到处运行的这个特点。
Java语言编写的程序既是编译型的,又是解释型的。
Java程序经过编译之后,可以转换成一种叫做Java字节码的中间语言。而这个编译器就是我们常用的JDK。而这个生成的字节码再交给Java虚拟机,由Java虚拟机将字节码变成机器可以识别的机器码。而这个Java虚拟机就是我们常用的JRE。这个过程看起来比较复杂是吧,好,那我们就换一种方式来理解。
我们编程时使用的开发工具就相当于一支笔,我们可以拿它来写字。而我们写的代码相当于一个菜谱。
而Java虚拟机它就是一个什么菜都会做的大厨。而我们则是那一个写菜单的人。我们把写好的代码,也就是我们这个菜单交给了大厨,大厨就会按照这个菜单做出一些菜来,而这些菜就是我们最终写好的程序。
我们只是写了Java代码,而真正将代码变成可执行程序的是Java虚拟机。
好那我们再回头看一下,这个Java是如何运行的。我们这个源代码就是我们编写的菜单。我们把这个菜单交给了这个JDK,也就是交给大厨。
大厨将这个菜切好,JDK将程序源码变成字节码这个过程就相当于大厨将这个菜切好了。此时这个字节码,他只是美食的一个半成品。
这时,大厨要按照菜单继续做菜了,于是大厨开始烹饪这个美食,就是将字节码交给虚拟机了。
然后从虚拟机出来的机器码才是真正的美食,也就是我们真正运行的这个程序。而这一个过程,就是Java运行的过程。
Java 语言介绍
Java 发展简史
1991 年,James Gosling 在 SUN 公司的工程师小组想要设计这样一种小型计算机语言。该语言主要用于像电视盒这样的消费类电子产品。另外,由于不同的厂商选择不同的CPU 和操作系统,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。所以,将这个语言命名为“Green”,类似于绿色软件的意思。后来,改名为 Oak,橡树的意思。改名后发现已经有一种语言叫这个名字了,再改名叫 Java。
Java 语言发展到今天经历了一系列的过程:
1991 年,SUN 公司的 Green 项目,Oak
1995 年,推出 Java 测试版
1996 年,JDK1.0
1997 年,JDK1.1
1998 年,JDK1.2,大大改进了早期版本缺陷,是一个革命性的版本,更名为 Java2。
2004 年,J2SE 5.0 (1.5.0) Tiger 老虎
2006 年,J2SE 6.0 (1.6.0) Mustang 野马
2011 年,JavaSE7.0 Dolphin 海豚
2014 年,JavaSE8.0
2017 年,JAVA 9.0
2018 年 3 月,JAVA 10
2018 年 9 月,JAVA 11
2019 年 3 月,JAVA 12
2019 年 9 月,JAVA 13
2020 年 3 月,JAVA14
SUN 公司已经被 oracle 公司收购,目前每半年更新一次 java 的版本。但是,企业中的主流仍然以 8 为主。对于初学者,应该以企业主流应用版本为核心进行学习,没有必须在此处追求最新版本。
Java 的核心优势
Java 为消费类智能电子产品而设计,但智能家电产品并没有像最初想象的那样拥有大的发展。然而 90 年代,Internet 却进入了爆发式发展阶段,一夜之间,大家都在忙着将自己的计算机连接到网络上。这个时候,遇到了一个大的问题。人们发现连接到 Internet 的计算机各式各样,有 IBM PC、苹果机、各种服务器等等,不仅硬件 CPU 不同,操作系统也不同,整个的网络环境非常复杂。这个时候,程序员们希望他们编写的程序能够运行在不同的机器,不同的环境中,这需要一种体系中立的语言(即跨平台)。Java 的研发小组户然发现他们用于小范围的语言也可以适应 Internet 这个大环境。
跨平台是 Java 语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖 IT 各行业的“第一大语言”,是计算机界的“英语”。虽然,目前也有很多跨平台的语言,但是已经失去先机,无法和 Java 强大的生态体系抗衡。Java 仍将在未来几十年成为编程语言的主流语言。
Java 各版本的含义
JavaSE(Java Standard Edition):标准版,定位在个人计算机上的应用这个版本是 Java 平台的核心,它提供了非常丰富的 API 来开发一般个人计算机上的应用程序,包括用户界面接口 AWT 及 Swing,网络功能与国际化、图像处理能力以及输入输出支持等。在上世纪 90 年代末互联网上大放异彩的 Applet 也属于这个版本。Applet 后来为 Flash 取代,Flash 即将被 HTML5 取代。
JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用
JavaEE 是 JavaSE 的扩展,增加了用于服务器开发的类库。如:JDBC 是让程序员能直接在 Java 内使用的 SQL 的语法来访问数据库内的数据;Servlet 能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP 是一种可以将 Java 程序代码内嵌在网页内的技术;
JavaME(Java Micro Edition):微型版,定位在消费性电子产品的应用上
JavaME 是 JavaSE 的内伸,包含 J2SE 的一部分核心类,也有自己的扩展类,增加了适合微小装置的类库:javax.microedition.io.*等。该版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。
Java 的特性和优势
跨平台/可移植性
这是 Java 的核心优势。Java 在设计时就很注重移植和跨平台性。比如:Java 的 int 永远都是 32 位。不像 C++可能是 16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
安全性
Java 适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使 Java 可以很容易构建防病毒,防篡改的系统。
面向对象
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于 C++为了照顾大量 C 语言使用者而兼容了 C,使得自身仅仅成为了带类的 C 语言,多少影响了其面向对方象的彻底性!Java 则是完全的面向对象语言。
简单性
Java 就是 C++语法的简化版,我们也可以将 Java 称之为“C++-”。跟我念“C 加加减”,指的就是将军 C++的一些内容去掉;比如:文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于 C 语言,因此学习起来完全不费力。
高性能
Java 最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的话,这个无法避免。Java 语言本身在发展中通过虚拟机的优化提升了几十倍的运行效率。比如,通过 JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使 Java 程序执行效率大大提高,某些代码甚至可以接待 C++的效率。
因此,Java 低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多 C++应用转到 Java 开发,很多 C++程序员转型为 Java 程序员。
分布式
Java 是为 Internet 分布式环境设计的,因为它能够处理 TCP/IP 协议。事实上,通过 URL 访问一个网络资源和访问本地文件是一样的。Java 还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
多线程
多线程的使用可以带来更好的交互响应和实时行为。 Java 多线程的简单性是 Java 成为主流服务器端开发语言的主要原因之一。
健壮性
Java 是一种健壮的语言,吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java 程序不可能造成计算机崩溃。即使 Java 程序列也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通异常处理机制加以处理
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。