关于java:Java从零开始0Java-简介

15次阅读

共计 3163 个字符,预计需要花费 8 分钟才能阅读完成。

1. Java 的历史

1995 年 5 月 23 日,Sun Microsystems 公司发表 Java 语言诞生,过后应用 Java 的总人数还不到 30 人,可能包含 Java 语言之父 詹姆斯·高斯林 在内的大多数联结创始人都无奈料想,Java 在将来的二十年间,竟然会给互联网乃至咱们的生存带来如此深远的影响。

目前 Java 提供以下三个版本:

  • Java Platform, Enterprise Edition(Java EE:Java 平台企业版);
  • Java Platform, Standard Edition(Java SE:Java 平台标准版);
  • Java Platform, Micro Edition(Java ME:Java 平台微型版)。

2006 年,SUN 公司在 JavaOne 大会上,发表在 GNU 通用公共协定(GPL)的构架下向开源世界奉献 Java 平台,这次凋谢的 Java 版本包含了其标准版(Standard)、微型版(Micro)以及企业版(Enterprise)。这是一个具备“历史性意义”的扭转。

2. 语言个性

Java 语言的诞生,从新定义了 面向对象编程(OOP)。Java 语言的创立之初,就定下了以下几个指标:

  • 简略易学,并且面向对象;
  • 必须强壮且平安;
  • 解脱平台的依赖性;
  • 高性能执行;
  • 必须是可解释的,多线程的,动静的。

2.1 面向对象

面向对象(Object Oriented)指的是一种编程办法。面向对象的次要思维是:围绕着咱们所操纵的“事物”(即对象)来设计软件。计算机硬件的倒退为软件技术的倒退提供了更好的土壤,为了让大型软件我的项目易于治理,升高开发和保护的老本,面向对象技术也就应运而生。为了理解面向对象技术的诞生起因,咱们上面来介绍几种比拟具备代表性的软件技术。

2.1.1 汇编语言

汇编语言是软件技术的开始,这种语言与机器语言十分靠近,并且能够很容易地转换为可执行代码。应用汇编语言的程序员,必须理解计算机的具体体系结构能力编写程序。

2.1.2 程序语言

在汇编语言之后,开发了高级语言,能够应用语言的编译器(如 gcc)将高级程序代码转换为机器指令。这样程序员无需再深刻理解计算机硬件的体系结构。为了进步代码的可复用性并最大水平地缩小 GOTO 指令的应用,引入了 面向过程 技术。尽管简化了软件流程管制的创立和保护,然而漠视了数据的组织。调试和保护许多全局变量的程序,变成了程序员的一场噩梦。

2.1.3 面向对象语言

在面向对象的语言中,数据被抽象地封装在对象中。特定于对象中的数据只能通过该对象来进行拜访。这样,程序就成为了对象之间的一系列交互。Java 语言就是一个纯面向对象的语言。

2.2 跨平台性

咱们兴许经常听到一句口号 ——“一次编译,到处执行(write once, run anywhere.)”,这里说的就是 Java 的 跨平台性,咱们首先来看下在 cc++ 中,代码是如何在不同平台运行的:

cc++ 中,咱们首先要将源代码文件编译为机器代码文件,而后再去执行它。这个过程中,机器代码文件必须在为其编译的平台能力执行(这里的平台指的是 Windows、Linux、Mac OS 等),也就是说,咱们的代码如果心愿在多个平台执行,那就必须屡次编译程序。这不仅给程序员带来了繁琐的开发步骤(代码稍做变更就要从新编译整个程序),也给程序带来了更大的破绽危险。当代码曾经编译为可执行文件时,这个可执行文件不能动静更改,此时须要更改代码从新编译,以替换旧的可执行文件。

咱们来看看 Java 是如何做的吧:

Java 的思维是,将代码编译为 两头语言 ,两头语言是 字节码,解释器是 Java 虚拟机(JVM)。字节码文件能够通用,JVM 是特定于平台的。如下图所示:

每一个平台都须要一个 JVM这里 JVM 是实现“到处执行”的要害前提 ,所以,在 Java 中,咱们 只须要生成一个字节码文件,就能够保障咱们编写的程序在任何平台都能运行了。

2.3 标准化

Java 中,提供了大量的标准化库,这保障了咱们应用对立的接口对程序进行管制。

2.4 异样解决

异样解决的老形式是:让每个函数返回一个错误代码,调用者会查看其返回的内容,这样就导致了代码中到处都是错误码的校验,从而让源码变得难以浏览。

在异样解决的新形式中,函数或办法不再返回错误码,而是以抛出异样的形式来进行异样解决,在 Java 中能够应用 catch 关键字来捕捉在 try 语句块中所产生的异样。这样咱们无需频繁通过定义错误代码的形式解决异样,代码可读性大大提高。

2.5 动静类加载

在 Java 中,如果在执行阶段不须要某个类,那么这个类就不会被编译为字节码。在网络编程中,这个个性十分罕用。当咱们不晓得将执行什么代码时,程序能够从文件系统或远端服务器加载类。

2.6 主动垃圾回收机制

在惯例语言(例如 C 和 C++)中,程序员必须确保已调配的内存被开释。避免造成 内存透露 的麻烦。

内存资源或缓冲区具备特定的操作模式以获得最佳性能。一旦缓冲区中充斥了数据,就须要在不再应用其内容之后将其革除。如果程序员遗记革除其代码中的内容,则内存很容易过载。Java 应用 主动垃圾收集器 来治理对象生命周期中的内存。程序员确定何时创建对象,一旦不再应用对象,Java 运行时将负责复原内存。一旦没有了对对象的援用,则垃圾回收器将主动开释无法访问的内存。

主动垃圾回收机制,让应用 Java 编写的代码更加强壮,升高了内存透露和溢出的危险。程序员惟一须要留神的是对象创立的速度。如果应用程序创建对象的速度超过了垃圾收集器开释对象的速度,则可能导致内存相干问题。

3. Java 的版本历史

Java 的次要发行版本及其发行日期如下:

  • JDK 1.0(1996 年 1 月 23 日)
  • JDK 1.1(1996 年 2 月 19 日)
  • J2SE 1.2(1998 年 12 月 8 日)
  • J2SE 1.3(2000 年 5 月 8 日)
  • J2SE 1.4(2002 年 2 月 6 日)
  • J2SE 5.0(2004 年 9 月 30 日)
  • Java SE 6(2006 年 12 月 11 日)
  • Java SE 7(2011 年 7 月 28 日)
  • Java SE 8(2014 年 3 月 18 日)
  • Java SE 9(2017 年 9 月 21 日)
  • Java SE 10(2018 年 3 月 20 日)
  • Java SE 11(2018 年 9 月 25 日)
  • Java SE 12(2019 年 3 月 19 日)
  • Java SE 13(2019 年 9 月 17 日)
  • Java SE 14(2020 年 3 月 17 日)
  • Java SE 15(2020 年 9 月 15 日)
  • Java SE 16(2021 年 3 月 16 日)

4. 名词解释

咱们将在后续具体介绍如何在不同平台上装置 Java,在装置 Java 之前,咱们须要了解两个名词,JDK 和 JRE:

  • JRE:Java Runtime Environment(Java 运行时环境)
  • JDK:Java Development Kit(Java 开发工具包)

以上两个名词是 Java 平台的两大重要软件,他们别离能够帮忙用户 运行 开发 Java 程序,JDK 是 JRE 的 超集,蕴含 JRE 的所有内容,以及开发小程序和应用程序所需的工具,例如编译器和调试器。

简略来说,咱们如果想要利用 Java 语言去开发应用程序,就要在咱们的电脑上装置 JDK。本教程应用最新版本的 Java 16

5. 学习根底

学习本教程,最好有肯定的计算机基础知识,相熟计算机软件的下载、装置等。当然,如果你没有任何基础知识也不用放心,本教程会尽量应用通俗易懂的语言来解说知识点。

6. 小结

在大多数人看来,Java 语言曾经十分完满,然而,Java 语言并非没有缺点,Java 语言短少硬件特定的数据类型,也没有可能指向任意地址的指针或编程办法之类的性能。只管这些性能有可能被程序员误用或滥用,但不得不抵赖它们是弱小的工具。

在本节中,咱们对 Java 语言的历史以及次要个性有了一个初步的理解,小伙伴们是不是曾经急不可待,要更加深刻理解 Java 了呢?那么在下一大节,咱们将理解如何在本人的电脑上装置 Java。

微信公众号

正文完
 0