Java会被新兴语言取代吗?
虽然现在不能完全说Java 经久不衰,但是未来一段时间内,想要完全取代Java 并不是那么容易的事。
Java 为何经久不衰?
1995年5月23日 Java 诞生。
凭借着"Write Once,run Anywhere(一次编写,到处运行)"的经典宣言、每六个月更新一次的发版频率,其在Tiobe、Pypl 以及 RedMonk 等编程语榜上笑傲多年,并且在计算技术数十年的发展演变之后仍保持着旺盛的活力。
时至今日,Java 仍是后台开发人员最为可靠的技能储备之一。
1.Java 的定义
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
2、Java 的特性
2.1、简单性
跟C++相比较而言,因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
2.2、面向对象
Java是一个面向对象的语言。对程序员来说,这意味着要注意其中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。
2.3、分布性
网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。
2.4、编译和解释性
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
2.5、稳健性
比如异常处理是Java中使得程序更稳健的一个特征。异常是某种类似于错误的异常条件出现的信号。使用 try/catch/finally 语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。
2.6、安全性
Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。
2.7、可移植性
Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。
Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。
2.8、高性能
Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。
Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。
2.9、多线程性
Java是多线程语言,它提供支持多线程的执行(也称为轻便过程),能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。
Java的线索支持也包括一组同步原语。这些原语是基于监督程序和条件变量风范,由C.A.R.Haore开发的广泛使用的同步化方案。用关键词synchronized,程序员可以说明某些方法在一个类中不能并发地运行。这些方法在监督程序控制之下,确保变量维持在一个一致的状态。
2.10、动态性
Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。
3、Java 三剑客Jdk,Jre、Jvm之间啥关系呢?
JVM:英文全拼是 Java Virtual Machine,翻译过来就是Java虚拟机。它只认识class类型的文件,也就是Java文件被编译后生成的文件,它能够将class文件中的字节码指令进行识别并调用操作系统上的API完成作业。也是Java能够实现跨平台,一次编译,到处运行的核心。
JRE:英文全拼是Java Runtime Environment,翻译过来也就是Java运行时环境,它主要包含两个部分,JVM和运行时所需要的核心类库,负责提供Java运行环境和Java文件的编译工作。
在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。
JDK:英文全拼是Java Development Kit,翻译过来就是Java开发工具包。是Java开发的核心,它集成了JRE和一些好用的工具命令。例如:java、javac、jar等常用命令。
4、Java 工作原理
把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。
5、我的第一个Java程序
打开我们的记事本,来展示我们的 Java 编程,创建文件 HelloWorld.java(文件名需与类名一致), 代码如下:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Hello World 就这样,我们的 Java 程序就正式问世了。
javac 编译,java 执行我们的字节码 class文件就 Ok了。
是不是很简单呢?
6、 Jdk版本迭代
1990年末,Sun公司启“Green计划”,由James Gosling领导,旨在开发嵌入式系统,C++到 Oak。
1992 年 Oak 相关操作系统、类库等完成,11 月,“Green 计划”被转化成“FirstPerson 有限公司”(致力高度互动的设备),关于机顶盒的交易屡败,Green 项目几乎接近夭折。
1994 年互联网和浏览器出现,对 Oak 改进出现第一个 Java 语言的网页浏览器 WebRunner,并得到 Sun 的赏析,由于 Oak 已被别人注册,因此改名为 Java。
1995 年 Sun 公司发布了 Java 语言,并将源代码毫不保留地放到互联网上,几个月后,Java 成为互联网上最热门的宝贝,涌现了大量 Java 小程序(Applet),Java 在移动互联网上主要用于交互、动画。至此,Java 诞生。
1996 年 Flash 的出现逐渐吞噬了 Java 在网页上的应用。第一个 JDK 诞生。
1998 年定位到企业、桌面和移动 3 个领域,Java 飞速发展。
1999 年 Sun 公司发布 J2SE、J2EE、J2EE。
2004 年 Java SE5.0 发布。
2007 年 Google 推出的 Android 给 Java 带来了新的发展机会。
2009 年 Sun 公司被 Oracle 以总价值约 74 亿美元收购,获得两项软件资产,Java 和 Solaris。
2012 年,Java 7 发布 。
2014年3月,JavaSE 8 发布。
2017年9月,JavaSE 9 发布。
2018年3月,Java SE 10 发布。
2018年9月,Java SE 11 发布。
2019年3月,Java SE 12 发布。
2019年9月,Java SE 13 发布。
2020年3月,Java SE 14 发布。
2020年9月,Java SE 15 发布。
2021年3月,Java SE 16 发布。
2021年9月,Java SE 17 发布。
2022年3月,Java SE 18 发布。
不得不说版本的更新迭代类似社区用户的活跃度,更新越快,就代表它的活跃度越高。
7、中国编程语言排行榜
过去的十多年,java几乎每年都是全世界使用人数第一的语言。推荐:Java,屠榜之王!编程界的半壁山。
7.1、编程语言比例
7.2、Java 占比人数依然最多
8、广泛的应用领域
全世界数百万的IT企业构建了庞大的Java生态圈,大量的软件基于Java开发。
Java目前在企业级软件开发、安卓开发、大数据、云计算等方方面面都是主流的编程语言。
8.1、有关通信及网络的大型企业:移动、联通、电信、网通主要的信息化都是Java;
8.2、有关金融行的大型企业,所有的银行、证券公司如工商银行、建设银行;大型管理系统如供应链、客户管理系统等;
8.3、电子政务,主要使用JavaEE,相关的政府部门绝大多数的信息化系统是Java开发的;
8.4、游戏,很多手机游戏都是用Java的。
这个生态圈的影响力越来越大,需要的人才也越来越多。越多人会Java,就有越多软件使用Java编写,反过来促进需要更多的Java人才。
这就是著名的“马太效应”,即“强者越强,弱者越弱”。选择方向这件事,有时候就是看兴趣,看机遇,看你能坚持多久,如果你对一个方向感兴趣,并且愿意持续学习,不断深挖,这个方向可能就适合你,当你在这个方向投入了一定时间之后,有了一定积累和经验,就不太容易再改变方向了。如果你下定决心选择Java,就得在这条技术路上不断深挖,不可老是摇摆不定,否则只是浪费时间。
看到这里,你认为Java 会被新兴语言取代吗?
记得点赞评论哦!