初识 Java

前言

Java 是一种面向对象的编程语言。在学习语法细节前,对其历史、现状和特性有所了解是有裨益的。

什么是 Java 语言

Java 语言是 Sun 公司于 1990 年开发的,当时 Green 项目小组的研究人员正在致力于为未来的智能设备开发一种新的编程语言。由于该小组的成员 James Gosling 对 C++ 语言在执行过程中的表现非常不满,就把自己封闭在办公室里编写了一种新的语言,并将其命名为 Oak(Oak 就是 Java 语言的前身),这个名字源于 Gosling 办公室窗外的一棵橡树(Oak)。此时的 Oak 已经具备安全性网络通信面向对象多线程等特性,是一款相当优秀的程序语言。后来,在注册 Oak 商标时,发现它已经被另一家公司注册,所以不得不改名。要取什么名字呢?工程师们边喝咖啡边讨论着,看看手上的咖啡,联想到印度尼西亚有一个盛产咖啡的岛屿(中文名叫爪哇),于是将其改名为 Java。

Java 语言的历史

随着 Internet 的迅速发展,Web 应用日益广泛,Java 语言也得到了迅速发展。1994 年,Gosling 用 Java 语言开发了一个实时性较高、可靠、安全、有交互功能的新型 Web 浏览器,它不依赖于任何硬件平台和软件平台。该浏览器被命名为 HotJava,并于 1995 年在业界发表,引起了巨大的轰动,Java 语言的地位随之得到了肯定。1995 年 5 月 23 日,JDK(Java Development Kit)1.0a2 版本正式对外发布。此后,Java 语言的发展异常迅速。2009 年 4 月 20 日,Sun 公司被 Oracle 公司收购。

Java 的运行机制

Java 语言编写的程序既是编译型的,又是解释型的。程序代码经过编译之后转换为一种称为 Java 字节码的中间语言,并由 Java 虚拟机(JVM)将这些字节码进行解释和运行。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对 JVM 优化过的机器码形式保存,虚拟机将字节码解释为机器码,然后在计算机上运行。


Java 语言现状

借助 Java,程序开发人员可以自由地使用现有的硬件和软件系统平台。由于 Java 是独立于平台的,它还可以应用于计算机之外的领域。Java 程序可以在便携式计算机、电视、电话、手机和其他设备上运行。Java 的用途数不胜数,它拥有无可比拟的能力,使用它所节省的时间和费用十分可观。Java 应用领域主要包括以下几方面。

  • 桌面应用系统开发
  • 嵌入式系统开发
  • 电子商务应用开发
  • 企业级应用开发
  • 交互式系统开发
  • 多媒体系统开发
  • 分布式系统开发
  • Web 应用系统开发

Java 无处不在,可应用在任何地方、任何领域,目前已拥有几百万用户,发展速度要快与在它之前任何一种计算机语言。Java 能够给企业和最终用户带来数不尽的好处。Oracle 公司董事长和首席执行官 Larru Ellision 说过:“Java 正在进入企业、家庭和学校。它正在像 Internet 本身一样成为普遍存在的技术。”
如果仔细观察就会发现,Java 就在我们身边。使用 Java 语言编写的常见开源软件包括 NetBeans 和 Eclipse 集成开发环境、JBoss 和 GlassFish 应用服务器;商业软件包括永中 Office、合金战士 Chrome、Websphere 和 Oracle Database 11g。此外,各手机厂商都为自己的产品提供了 Java 技术的支持,手机上的 Java 程序和游戏已经不胜枚举。
为了满足不同开发人员的需求,Java 开发分成了以下 3 个方向。

  • Java SE:主要用于桌面程序的开发。它是学习 Java EE 和 Java ME 的基础。
  • Java EE:主要用于网页程序的开发。随着互联网的发展,越来越多的企业使用 Java 语言来开发自己的官方网站,其中不乏一些世界 500 强的企业。
  • Java ME:主要用于嵌入式系统程序的开发。

Java 语言特性

Java 语言的作者们编写了具有广泛影响的 Java 白皮书,里面详细介绍了他们的设计目标以及实现成果。此外,还用简短的篇幅介绍了 Java 语言的特性。下面将对其进行简要介绍。

简单

Java 语言的语法简单明了,容易掌握,而且是纯面向对象的语言。Java 语言的简单性主要体现在以下几点:

  • 语法规则和 C++ 类似。从某种意义上讲,Java 语言是由 C 和 C++ 语言转变而来,所以 C 程序设计人员可以很容易地掌握 Java 语言的语法。
  • Java 语言对 C++ 进行了简化和提高。例如,Java 使用接口取代了多重继承,并取消了指针,因为指针和多重继承通常使程序变得复杂。Java 语言还通过实现垃圾自动收集,大大简化了程序设计人员的资源释放管理工作。
  • Java 提供了丰富的类库和 API 文档以及第三方开发包,另外,还有大量的基于 Java 的开源项目,现在 JDK 也开放源代码了,读者可以通过分析项目的源代码,提高自己的编程水平。

面向对象

Java 语言本身是一种面向对象的程序设计语言。Java 提倡万物皆对象,语法中不能在类外面定义单独的变量和方法,也就是说,Java 语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。

分布式

Java 的分布性包括操作分布和数据分布,其中操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别存放在多个不同的主机上,这些主机是网络中的不同成员。Java 可以凭借 URL 对象访问网络对象,访问方式与访问本地系统相同。

可移植性

Java 程序具有与体系结构无关的特性,从而使 Java 程序可以方便地移植到网络的不同计算机中。同时,Java 的类库中也实现了针对不同平台的接口,使这些类库也可以移植。

解释性

运行 Java 程序需要解释器。任何移植了 Java 解释器的计算机或其他设备都可以用 Java 字节码进行解释执行。字节码独立于平台,它本身携带了许多编译信息,使得连接过程更加简单,开发过程也就更加迅速,更具探索性。

安全性

Java 语言删除了类似 C 语言中的指针和内存释放等语法,从而有效地避免了非法操作内存。Java 程序代码要经过代码校验、指针校验等很多的测试步骤才能够运行,所以未经允许的 Java 程序不可能出现损害系统平台的行为,而且使用 Java 可以编写防病毒和防修改的系统。

健壮性

Java 的设计目标之一是编写多方面可靠的应用程序,Java 将检查程序在编译和运行时的错误,以及消除错误。类型检查能帮助用户检查出许多在开发早期出现的错误。同时,很多集成开发工具 IDE(如 Eclipse、NetBeans)的出现使编译和运行 Java 程序更加容易。

多线程

多线程机制能够使应用程序在同一时间并行执行多项任务,而且相应的同步机制可以保证不同线程能够正确地共享数据。使用多线程,可以带来更好的交互能力和实时行为。

高性能

Java 编译后的字节码是在解释器中运行的,所以它的速度比多数交互式应用程序提高了很多。另外,字节码可以在程序运行时被翻译成特定平台的机器指令,从而进一步提高运行速度。

动态

Java 在很多方面比 C 和 C++ 更能够适应发展的环境,可以动态调整库中方法和变量的增加,而客户端却不需要作任何更改。在 Java 中,动态调整是非常简单、直接的。

搭建开发环境

JDK 的下载、安装和配置

开发 Java 程序必须安装 JDK (Java Developers Kits) 开发环境。它包含演示程序和样例、Java 公共 API 类的源代码、Java 运行环境、编译调试等开发工具。

下载 JDK

由于 Sun 公司被 Oracle 收购,因此 JDK 可以在 Oracle 公司的官方网站下载。Oracle
下面以 JDK8 为例介绍 Windows64 位下载 JDK 的方法,具体步骤如下。

安装 JDK

在 JDK 中,已经包含了 JRE。JDK 用于开发 Java 程序,JRE 用于运行 Java 程序

  • 双击下载的 jdk-8u261-windows-x64.exe,接着 Windows 式下一步。
  • 如需更改安装位置,点击更改,接着下一步。注:请记住该安装位置,后续配置环境变量会用到。
  • 点击下一步,安装中。

配置 JDK

安装完 JDK 之后,必须配置环境变量方可使用 Java 环境。在 Windows 操作系统中,主要配置 3 个环境变量,分别是 JAVA_HOME、Path 和 CLASSPATH。其中 JAVA_HOME 用来指定 JDK 的安装路径;Path 用来使系统能够在任何路径下都可以识别 Java 命令;CLASSPATH 用来加载 Java 类库的路径。在 Windows 7 系统中配置环境变量的步骤如下。

  • 在 “计算机” 图标上单击鼠标右键,在弹出的快捷菜单中选择属性命令,在弹出的属性对话框左侧单击高级系统设置超链接,将打开系统属性对话框。
  • 单击环境变量按钮,将弹出 “环境变量” 对话框,单击系统变量栏下的 “新建” 按钮,创建新的系统变量。弹出 “新建系统变量” 对话框,分别输入变量名 JAVA_HOME 和变量值(即 JDK 的安装路径),其中变量值是笔者的 JDK 安装路径,读者需要根据自己的计算机环境进行修改。单击确定按钮,关闭 “新建系统变量” 对话框。
    20201011150220
    20201011151600
    20201011152037
  • 环境变量对话框中双击 Path 变量,对其进行修改。将原变量值最前面的 C:\Program Files (x86)\Common Files\Oracle\Java\javapath; 删除,并输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意,最后的 “;” 不要丢掉,它用于分割不同的变量值)。单击确定按钮完成环境变量的设置。
    20201011152528
  • 在 “环境变量” 对话框中,单击 “系统变量” 栏下的新建按钮,新建一个 CLASSPATH 变量,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
    20201011152735

    在 Windows 系统中,环境变量需要使用英文的分号进行分隔;在 Linux 系统中,环境变量需要使用英文的冒号进行分隔。要注意全角和半角的区别。

  • 接着一路确定,就到了激动人心的验证是否配置成功的环节。

测试开发环境

JDK 配置完成后,需确认是否配置准确。在 Windows 系统中测试 JDK 环境需要选择 “开始”/“运行” 命令(没有 “运行” 命令可以按 Windows+R 组合键),然后在 “运行” 对话框中输入 “cmd” 并单击 “确定” 按钮启动控制台。在控制台中输入 javac 命令,按 Enter 键,将输出如下图所示的 JDK 的编译器信息,其中包括修改命令的语法和参数选项等信息。这说明 JDK 环境搭建成功。Congratulations!
20201011153704


JDK、JRE 和 JVM 之间的关系

JDKJREJVM

Hello World!

第一个 Java 程序

又到了激动人心的 Hello World
在完成 JDK 的下载和安装后,就可以开始编写 Java 程序了。下面将编写第一个 Java 程序,其效果是在 DOS 控制台上显示 “Hello World!”。

编写源代码

使用 Java 编程的第一步是编写源代码,这里需要使用到文本编辑器。目前有各种各样的文本编辑器,如 “记事本” 工具、Sublime Text 等。这里使用 Windows 系统自带的 “记事本” 工具。

  • 先进行一番设置
    20201012005109
    20201012005310

  • 正式开始
    在电脑任意磁盘新建一文件夹,用于存放 Java 代码,方便后续管理。新建完成后在此文件夹下新建一文本文档,编辑以下为内容:

    1
    2
    3
    4
    5
    public class HelloWorld{
    public static void main(String[] args){
    System.out.println("Hello World!");
    }
    }

    Ctrl+S 保存。
    并重命名为 HelloWorld.java
    20201012005845

编译源代码

点击 Java 文件所处界面的文件管理器路径框并输入 cmd,并回车 Enter
20201012011000
在弹出的运行框中输入指令 javac HelloWorld.java, 并回车 Enter
20201012011303
编译过后,无返回错误且目标文件夹下多出一个名为 HelloWold.class 的文件,则说明编译成功。
20201012011722

运行

执行 java HelloWorld
20201012012000
Congratulations!

IDE

Tips

学习 Java 语言程序设计必须选择一个功能强大使用简单能够辅助程序设计的 IDE(Integrated Development Environment)。虽然使用记事本和 JDK 编译工具已经可以编写 Java 程序,但是在项目开发过程中必须使用大型的集成开发工具(IDE)来编写 Java 程序,这样可以避免编码错误,方便管理项目结构,而且使用 IDE 工具的代码辅助功能可以快速地输入程序代码。好用的 IDE 可以大量节省程序开发所需的时间和精力。

IDE 之 Eclipse

Eclipse 是由 IBM 公司投资 4000 万美元开发的集成开发工具。它基于 Java 语言编写,并且是开放源代码的可扩展的,也是目前流行的 Java 集成开发工具之一。另外,IBM 公司捐出 Eclipse 源代码,组建了 Eclipse 联盟,由该联盟负责这种工具的后续开发。Eclipse 为编程人员提供了一流的 Java 程序开发环境,它的平台体系结构是在插件概念的基础上构建的,插件是 Eclipse 平台最具特色的特征之一。

下载 Eclipse

这里以 64 位 Windows 为例

  • 打开浏览器,首先在地址栏中输入 http://www.eclipse.org,按 Enter 键开始访问 Eclipse 的官网首页,然后单击 Eclipse 官网首页上的 Download 按钮。再一直 Download 下去。
    20201013001133
    20201013001447
    20201013001652

    若下载无响应,请更换镜像源

    20201013003158

安装 Eclipse

  • 双击下载的安装包,选择 Eclipse IDE for Java Developers20201013010537
  • 设置安装位置
    20201013011310
  • 点击 INSTALL—>Accept Now,等待安装完成。

配置 Eclipse

  • 双击 Eclipse 快捷方式,配置工作空间,并点击 Launch。每次启动 Eclipse 时都会出现设置工作空间的对话框,通过选中 Use this as the default and do not ask again 复选框可以设置默认工作空间,这样 Eclipse 启动时就不会再询问工作空间的设置了。
    20201014000907
    20201014002305
  • 这里附上汉化教程,酌情选择是否汉化。
    • 在浏览器的地址栏中输入 http://www.eclipse.org/babel,并按 Enter 键,进入 Babel 项目组首页。单击页面右侧导航中的 Downloads 超链接或者单击页面下方的绿色箭头都可以进入语言包的下载页面。
      20201014002958
    • 在下载页面的 Babel Language Packs 标题下选择对应 Eclipse 版本的超链接下载语言包,进入 Eclipse 的 Babel 语言包下载页面,在该页面中包含了对应各国语言的资源包,而每个语言的资源包又按插件与功能模块分为多个 zip 压缩包。在页面中找到简体中文的语言包分类,可以单独选择 Eclipse 的语言包下载,也可以下载全部语言包。例如,单独下载 Eclipse 的语言包,可以单击 BabelLanguagePack-eclipse-zh_4.16.0.v20200711020001.zip (84.09%) 超链接,下载后的文件名为 BabelLanguagePack-eclipse-zh_4.16.0.v20200711020001.zip
      20201014004759

      下载 Eclipse 多国语言包时,一定要注意语言包所匹配的 Eclipse 版本,否则可能无法实现 Eclipse 的国际化。

      若下载无响应,请更换镜像源

    • 将下载的所有语言包解压缩并将 featuresplugins 两个文件夹复制到 Eclipse 安装目录中的 dropins 文件夹下,这样在启动 Eclipse 时便会自动加载语言包。
      Congratulations!

      20201014124918
  • HelloWorld!
    新建一个 Java 项目(文件 —> 新建 —>Java项目),名称随意。
    新建一个 Java 类(右击刚新建的Java项目–> 新建 —> ),命名为 HelloWorld。并编写刚学会的打印 HelloWorld! 的代码。
    Ctrl+F11 编译并运行。
    20201014145539

IDE 之 IDEA

“你怎么还在用 Eclipse???”,“因为它免费啊!”。现在介绍一款 Java 开发利器 —IntelliJ IDEA,IntelliJ 在业界被公认为最好的 Java 开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具 (git、svn 等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持 HTML,CSS,PHP,MySQL,Python 等。免费版只支持 Java,Kotlin 等少数语言。诚然,没有最好的工具,只有适合自己的工具。免费版的 IntelliJ IDEA 已经基本可以满足 Java 学习。

下载 IDEA

这里以 64 位 Windows 为例

安装 IDEA

双击安装包,选择安装路径,安装。【不再赘叙】

配置 IDEA

  • 点击 Create New Project ,选择 Java模块,Project SDK 选择 JDK 的安装目录。Next—>Next—> 命名项目名称 —>Finish
    20201017233631

  • 这里附上汉化教程,酌情选择是否汉化。

    • 依次点击文件设置Plugins,并搜索 Chinese。点击安装。
      20201018002334
      20201018002532
  • HelloWorld!
    新建一个 Java 类(右击刚新建的 Java 项目下的 src 目录–> 新建 Java类),命名为 HelloWorld。并编写刚学会的打印 HelloWorld! 的代码。
    Shift+F10 编译并运行。
    20201018003433

Congratulations!