Java 基础教程 (第 1 章) - Java 入门基础

Java 是当今世界最重要、使用最广泛的计算机语言之一,在多年之前它就已经拥有这一荣誉。全球每天有超过百万的开发者在用 Java 进行各式各样程序的开发。Java 因为其方便学习、使用简单等特点,受到了越来越多人的青睐。

如果你也想成为 Java 开发阵营的一员,那么就跟随教程第 1 章来全面了解一下 Java。本章主要讲述 Java 的一些基础知识及其开发环境的搭建和使用。


本章学习要点

  1. 了解 Java 语言的版本及特点
  2. 了解学习 Java 的方法
  3. 掌握 JDK 的安装
  4. 掌握环境变量的配置
  5. 熟悉 Java 程序的编写、编译和运行过程
  6. 了解 Java 虚拟机的作用
  7. 熟悉 Java 程序的各个组成部分
  8. 了解 Java 编程规范

1.1 Java是什么?

Java 是近 10 年来计算机软件发展过程中的传奇,其在众多开发者心中的地位可谓“爱不释手”,与其他一些计算机语言随着时间的流逝影响也逐渐减弱不同,Java 随着时间的推移反而变得更加强大。

从首次发布开始,Java 就跃到了 Internet 编程的前沿。后续的每一个版本都进一步巩固了这一地位。如今,Java 依然是开发基于 Web 的应用程序的最佳选择。此外,Java 还是智能手机变革的推手,Android 编程采用的就是 Java 语言。

什么是Java语言

简单地说,Java 是由 Sun Microsystems 公司于 1995 年推出的一门面向对象程序设计语言。2010 年 Oracle 公司收购 Sun Microsystems,之后由 Oracle 公司负责 Java 的维护和版本升级。

其实,Java 还是一个平台。Java 平台由 Java 虚拟机(Java Virtual Machine,JVM)和 Java 应用编程接口(Application Programming Interface,API)构成。Java 应用编程接口为此提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个 Java 平台之后,Java 应用程序就可运行。

Java 平台已经嵌入了几乎所有的操作系统。这样 Java 程序只编译一次,就可以在各种系统中运行。Java 应用编程接口已经从 1.1x 版本发展到 1.2 版本。常用的 Java 平台基于 Java 1.6,最新版本为 Java 19。

Java 发展至今,就力图使之无所不能。在世界编程语言排行榜中,近年来 Java 一直稳居第一名,比第二名的C语言高出几个百分点。

按应用范围,Java 可分为 3 个体系,即 Java SE、Java EE 和 Java ME。下面简单介绍这 3 个体系。

1. Java SE Java SE(Java Platform Standard Edition,Java 平台标准版)以前称为 J2SE,它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java EE 提供基础,如 Java 语言基础、JDBC 操作、I/O 操作、网络通信以及多线程等技术。图 1 所示为 Java SE 的体系结构。

图1

2. Jave EE Java EE(Java Platform Enterprise Edition,Java 平台企业版)以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(Service Oriented Architecture,SOA)和 Web 2.0 应用程序。

3. Java ME Java ME(Java Platform Micro Edition,Java 平台微型版)以前称为 J2ME,也叫 K-JAVA。 Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。

Java ME 包括灵活的用户界面、健壮的安全模型、丰富的内置网络协议以及对可以动态下载的联网和离线应用程序。基于 Java ME 规范的应用程序 只需编写一次就可以用于许多设备,而且可以利用每个设备的本机功能。

Java语言的特点

Java 语言的风格很像 C 语言和 C++ 语言,是一种纯粹的面向对象语言,它继承了 C++ 语言面向对象的技术核心,但是拋弃了 C++ 的一些缺点,比如说容易引起错误的指针以及多继承等,同时也增加了垃圾回收机制,释放掉不被使用的内存空间,解决了管理内存空间的烦恼。

Java 语言是一种分布式的面向对象语言,具有面向对象、平台无关性、简单性、解释执行、多线程、安全性等很多特点。

下面针对这些特点进行逐一介绍。

1. 面向对象 Java 是一种面向对象的语言,它对对象中的类、对象、继承、封装、多态、接口、包等均有很好的支持。为了简单起见,Java 只支持类之间的单继承,但是可以使用接口来实现多继承。使用 Java 语言开发程序,需要采用面向对象的思想设计程序和编写代码。

2. 平台无关性 平台无关性的具体表现在于,Java 是“一次编写,到处运行(Write Once,Run any Where)”的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是 Java 的虚拟机机制。在引入虚拟机之后,Java 语言在不同的平台上运行不需要重新编译。 Java 语言使用 Java 虚拟机机制屏蔽了具体平台的相关信息,使得 Java 语言编译的程序只需生成虚拟机上的目标代码,就可以在多种平台上不加修改地运行。

3. 简单性 Java 语言的语法与 C 语言和 C++ 语言很相近,使得很多程序员学起来很容易。对 Java 来说,它舍弃了很多 C++ 中难以理解的特性,如操作符的重载和多继承等,而且 Java 语言不使用指针,加入了垃圾回收机制,解决了程序员需要管理内存的问题,使编程变得更加简单。

4. 解释执行 Java 程序在 Java 平台运行时会被编译成字节码文件,然后可以在有 Java 环境的操作系统上运行。在运行文件时,Java 的解释器对这些字节码进行解释执行,执行过程中需要加入的类在连接阶段被载入到运行环境中。

5. 多线程 Java 语言是多线程的,这也是 Java 语言的一大特性,它必须由 Thread 类和它的子类来创建。Java 支持多个线程同时执行,并提供多线程之间的同步机制。任何一个线程都有自己的 run() 方法,要执行的方法就写在 run() 方法体内。

6. 分布式 Java 语言支持 Internet 应用的开发,在 Java 的基本应用编程接口中就有一个网络应用编程接口,它提供了网络应用编程的类库,包括 URL、URLConnection、Socket 等。Java 的 RIM 机制也是开发分布式应用的重要手段。

7. 健壮性 Java 的强类型机制、异常处理、垃圾回收机制等都是 Java 健壮性的重要保证。对指针的丢弃是 Java 的一大进步。另外,Java 的异常机制也是健壮性的一大体现。

8. 高性能 Java 的高性能主要是相对其他高级脚本语言来说的,随着 JIT(Just in Time)的发展,Java 的运行速度也越来越高。

9. 安全性 Java 通常被用在网络环境中,为此,Java 提供了一个安全机制以防止恶意代码的攻击。除了 Java 语言具有许多的安全特性以外,Java 还对通过网络下载的类增加一个安全防范机制,分配不同的名字空间以防替代本地的同名类,并包含安全管理机制。

Java 语言的众多特性使其在众多的编程语言中占有较大的市场份额,Java 语言对对象的支持和强大的 API 使得编程工作变得更加容易和快捷,大大降低了程序的开发成本。Java 的“一次编写,到处执行”正是它吸引众多商家和编程人员的一大优势。

1.2 Java JDK 下载与安装

万事开头难。在了解什么是 Java、Java 语言的特点以及学习方法之后,本节将介绍如何搭建编写 Java 程序所需要的开发环境——JDK(Java Development Kit)。

JDK 是一种用于构建在 Java 平台上发布的应用程序、Applet 和组件的开发环境,即编写 Java 程序必须使用 JDK,它提供了编译和运行 Java 程序的环境。

在安装 JDK 之前,首先要到 Oracle 网站获取 JDK 安装包。JDK 安装包被集成在 Java SE 中,因此下载 Java SE 即可,具体步骤如下。

(1) 在浏览器中输入Oracle 公司的官方网站。如图 1 所示:

图1

选择Products 产品,在产品列表中,选择Java。如图2所示:

图2

(2) 在转向的页面中,单击 Download Java。如图3所示:

图3

(3) 在跳转的页面中,点击下载 Java 安装包。如图4所示:

图4

1.3 Java JDK 环境变量配置

JDK 安装和配置完成后,可以测试其是否能够正常运行。选择“开始”|“运行”命令,在打开的“运行”对话框中输入 cmd 命令,按 Enter 键进入到 DOS 环境下。

在命令提示符后输入并执行java -version命令,系统如果输出类似图 1 所示的 JDK 版本信息,说明 JDK 已经配置成功。

图1

提示:在命令提示符后输入测试命令时,需要注意 java 和减号之间有一个空格,而减号和 version 之间没有空格。

如果没有出现图 1 所示内容,说明 JDK 没有安装成功。另外,一些 Java 程序会通过环境变量搜索 JDK 的路径,使用压缩包安装 JDK 的方式也需要配置环境变量。下面以 Windows 7 系统为例,配置环境变量的具体步骤如下。

(1) 从桌面上右击“计算机”图标,从快捷菜单中选择“属性”命令,在打开的“系统属性”对话框中单击“环境变量”按钮,如图 2 所示:

图2

(2) 从弹出的“环境变量”对话框中单击“系统变量”列表框下方的“新建”按钮,如图 3 所示:

图3

(3) 此时会弹出“新建系统变量”对话框。在“变量名”文本框中输入 JAVA_HOME,在“变量值”文本框中输入 JDK 的安装路径,图 4 所示。最后单击“确定”按钮,保存 JAVA_HOME 变量。

图4

(4) 在图 3 所示的“系统变量”列表框中双击 Path 变量,进入“编辑系统变量”对话框。在“变量值”文本框的最前端添加.;%JAVA_HOME%bin;内容,如图 5 所示。最后单击“确定”按钮。

图5

提示:字符串“.;%JAVA_HOME%bin;”中的两个分号是不可缺少的,它们用于分隔多个环境变量。第一个分号前是一个英文状态半角下的句号,表示命令行下的当前目录;第二个分号前则是 JDK 的 bin 目录。

1.4 编写第一个Java程序

经过上节的操作已经配置完了 Java 的开发环境,但并不清楚所配置的开发环境是否真的可以运行 Java 应用程序。为了解除这个疑虑,也为了使读者对开发 Java 应用程序的步骤有一个初步的了解,本节将展示一个完整 Java 应用程序的开发过程。

(1) 新建一个空白记事本,然后如实地输入下列内容。 很多初学者可能不明白此程序的全部意义,没关系,请完全按照实例的样式输入,包括各种括号与标点符号。

 /*
  *第一个java程序
  */
 public class HelloJava {
     // 这里是程序入口
     public static void main(String[] args) {
         // 输出字符串
         System.out.println("你好 Java");
     }
 }

下面对源代码中的重要组成元素进行简单介绍。

(2) 将写完代码后的文件另存为 HelloJava.java,保存类型选择“所有文件”,接着单击“保存”按钮,保存文件到 D:myJava 文件夹中,如图 1 所示:

图1

提示:保存的文件名中不能出现空格,类似“Hello Java.java”的文件名在编译时会出现找不到文件的错误。

编译和运行

将 Java 源程序编写并保存到文件之后,还需要进行编译才能运行。编译 Java 源程序使用的是 JDK 中的 javac 命令,例如编译上节的 HelloJava.java,完整命令如下。

 javac HelloJava.java

javac HelloJava.java 命令的作用是让 Java 编译器获取 Java 应用程序 HelloJava.java 的源代码,把它编译成符合 Java 虚拟机规范的字节码文件。这时会生成一个新文件 HelloJava.class,此文件便是我们所说的字节码文件,它也是 JVM 上的可执行文件,如图 2 所示:

图2

运行 Java 程序需要使用 JDK 中的 java 命令,例如运行上步生成的 .class 文件,完整命令如下:

 java HelloJava

具体的执行效果如图 3 所示:

图3

对图片中各个步骤的说明:

编译常见错误解决方法

在使用 javac 编译器编译源代码文件时,可能会出现下面几个常见问题。

(1) Error:cannot read:HelloJava.java javac。 工具程序找不到指定的 java 文件,需要检查文件是否存储在当前目录中,或文件名是否错误。

(2) HelloJava.java:4:class HelloJava is public,should be declared in a file named MyApplication.java。 源文件中类的名称和源文件名称不符,需要确定源文件名称和类名称是否相同。

(3) HelloJava.java:6:cannot find symbol。 源程序文件中某些代码部分输入错了,最常产生的原因可能是没有注意到字母的大小写。

(4) Javac 不是内部或外部命令、可执行程序或批量文件。 path 设置有误或没有在 path 系统变量中加入 JDK 的 bin 目录。

如果没有出现上述所列问题,即成功编译了该 Java 文件。在解释执行 .dass 文件时,可能会出现下面几个常见问题。

(1) Exception in thread “main” java.lang.NoClassDeFoundError。 Java 工具程序找不到所指定的 .class 类,需要确定指定的类是否存储在当前目录中,名称是否正确。

(2) Exception in thread “main” java.lang.NoSuchMetliodError:main。 没有指定 Java 程序的入口。Java 工具程序指定的类必须有一个程序入口,也就是必须包括 main(String args[]) 这个方法。

提示:在后面的章节中,如果不是特别强调,就不再重复介绍如何编译与解释执行 Java 程序。

1.5 Java 编程规范

编程规范是对编程的一种约定,主要作用是增强代码的可读性和可维护性,便于代码重用。

首先要求程序中的各个要素都遵守命名规则,然后在编码中严格按照编码格式编写代码。命名规则包括以下几点

另外,编码格式规定如下

从《编写第一个Java程序》一节的案例可以看出,Java 程序的运行必须经过编写、编译和运行 3 个步骤。

  1. 编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。
  2. 编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件,不像C语言那样生成可执行文件。
  3. 运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。

Java 程序运行流程如图 1 所示:

图1

字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码。它是一种二进制文件,是 Java 源文件由 Java 编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的 Java 解释器来解释执行,因此 Java 是一种在编译基础上进行解释运行的语言。

Java 解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此 Java 程序不能直接运行在现有的操作系统平台上,它必须运行在被称为 Java 虚拟机的软件平台之上。

Java 虚拟机(JVM)是运行 Java 程序的软件环境,Java 解释器是 Java 虚拟机的一部分。在运行 Java 程序时,首先会启动 JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。

JVM 把这种不同软、硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 JVM 中运行 Java 程序实现的。Java 的这种运行机制可以通过图 2 来说明:

图2

Java 语言这种“一次编写,到处运行”的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。

提示:Java 程序通过 JVM 可以实现跨平台特性,但 JVM 是不跨平台的。也就是说,不同操作系统之上的 JVM 是不同的,Windows 平台之上的 JVM 不能用在 Linux 平台,反之亦然。

1.7 Java中JVM、JRE和JDK三者有什么区别和联系?

任何语言或者软件的运行都需要环境。就像人要生活在空气中,鱼要活在水中,喜阴植物就不能放在阳光下暴晒一样,任何对象个体的存在都离不开其所需要的环境,编程语言亦是一样的。

Java 语言的开发运行,也离不开 Java 语言的运行环境 JRE。没有 JRE 的支持,Java 语言便无法运行。当然,如果还想编译 Java 程序,搞搞小开发的话,JRE 是明显不够了,这时候就需要 JDK。

其实啊,JDK 就是 JRE 加上一些常用工具组成的。JDK 不仅能运行已经被编译好了的 Java 程序,还能支持我们编译 Java 程序(JDK=JER+各种工具)。

那么 JDK,JVM 和 JRE,那他们三个有什么区别呢?又有什么联系呢?如果你学到这里产生这样一个疑问,我想说,你到目前为止,学的很不错!那现在为你们整理一下三者的关系和区别吧:

所以说大家看出来三者的关系了吗?其实如下图所示:

由图中可以看出以下几点:

1.8 Java常用开发工具有哪些?

本节介绍一下 Java 常用的几个开发工具。下面这些工具或许功能和作用不同,但是有着一个共同的主旨,那就是——它们都是为了给 Java 编码和开发提供卓越的支持。

常用源码编辑工具介绍

Java 源代码本质上其实就是普通的文本文件,所以理论上来说任何可以编辑文本文件的编辑器都可以作为我们的 Java 代码编辑工具。比如:Windows 记事本,Mac OS X 下的文本编辑,Linux 下的 vi、emacs、gedit、DOS 下的 edit 等。但是这些简单工具没有语法的高亮提示、自动完成等功能,这些功能的缺失会大大降低代码的编写效率。

所以学习开发时一般我们不会选用这些简单文本编辑工具。我们一般会选用一些功能比较强大的类似记事本的工具,比如: Notepad++、Sublime Text、editplus、ultraedit、vim 等。下面我们分别具体介绍一下它们的优缺点,方便大家找到适合自己开发工具。

大家可以点击文中蓝色的工具名称,直接进入官网下载。

1)Notepad++

Notepad++ 是 Windows 操作系统下的一套文本编辑器,有完整的中文化接口及支持多国语言编写的功能(UTF8 技术)。

Notepad++ 优点:

Notepad++ 缺点:

2)EditPlus

EditPlus 是一款由韩国 Sangil Kim (ES-Computing)出品的小巧但是功能强大的可处理文本、HTML 和程序语言的 Windows 编辑器,甚至可以通过设置用户工具将其作为 C,Java,Php 等等语言的一个简单的 IDE。

EditPlus 优点:

EditPlus 缺点:

3)UltraEdit

UltraEdit 是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII 码,完全可以取代记事本,它是一款需要花费 49.95 美元的共享软件。

UltraEdit 优点:

UltraEdit 缺点:

4)Sublime Text

Sublime Text 是由程序员 Jon Skinner 于 2008 年 1 月份所开发出来,它最初被设计为一个具有丰富扩展功能的 Vim。

它是一款收费软件,但是可以无限期试用,它是一个跨平台的编辑器,同时支持 Windows、Linux、Mac OS X 等操作系统。

Sublime Text 优点:

5)Vim

Vim 是从 Vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。是 Unix 系统用户最喜欢的文本编辑器。

Vim 优点:

Vim 缺点:

集成开发工具介绍

Java 初学者为了能更好的掌握 Java 代码的编写,我们一般会选用一款高级记事本类的工具作为开发工具, 而实际项目开发时,更多的还是选用集成 IDE 做为开发工具,比如当下最流行的两款工具:Eclipse、IDEA。

所谓集成 IDE 就是把代码的编写、调试、编译、执行都集成到一个工具中了,不用单独在为每个环节使用工具。

1)Eclipse IDE

Eclipse 是一个开放源码的项目,是著名的跨平台的自由集成开发环境(IDE),最初主要用来 Java 语言开发,后来通过安装不同的插件 Eclipse 可以支持不同的计算机语言,比如 C++ 和 Python 等开发工具。

Eclipse 优点:

Eclipse 缺点:

2)MyEclipse

MyEclipse 是同 Eclipse 一个公司的,在功能上增加了不少,相对于 Eclipse 来说,MyEclipse 更像将 Eclipse 中好多插件都集成起来了,当然,性能上面也有更好的考虑,不过这款 IDE 是收费的。

因 MyEclipse 属于收费软件,所以大公司很少使用。

3)Intellij IDEA

Intellij IDEA 简称 IDEA,具有美观,高效等众多特点。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持 HTML,CSS,PHP,MySQL,Python 等。免费版只支持 Java 等少数语言。

据传它有“最智慧的 Java ide”之称。它能帮助开发人员拿出最具有创造性的解决方案。它的“Smart Code Completion”和“On-the-fly Code Analysis”功能等可以提高开发人员的工作效率,并且还提供了对 web 和移动开发高级支持。

IDEA 缺点:

4)NetBeans

NetBeans 是业界第一款支持创新型 Java 开发的开放源码 IDE。开发人员可以利用业界强大的开发工具来构建桌面、Web 或移动应用。同时,通过 NetBeans 和开放的 API 的模块化结构,第三方能够非常轻松地扩展或集成 NetBeans 平台。

NetBeans IDE 目前支持 PHP、Ruby、JavaScript、Ajax、Groovy、Grails 和 C/C ++ 等开发语言。

NetBeans 是甲骨文公司生产的 IDE,在其中也内置了许多功能,相对于 idea 和 Eclipse 市场还是较少的。

NetBeans 提供了功能全面的阵列。如转换器,编辑器和代码分析器,这些工具可以帮助你使用最新的 Java 技术实现应用程序。工具范围相当广泛,而且 IDE 背后的团队也在不断地改进。此外你还可以得到静态分析工具的帮助——编写出无 bug 的代码。

在使用这些开发工具之前,我们最好能熟知这些软件的优点和缺点,以便根据实际情况选择应用。编程工具只是工具,为了方便人们工作而开发的,各有特点,因此,选工具主要的依据自己将要从事的领域是什么,而不是盲目的认为那种工具好,那种工具不好。看完这篇文章后希望大家都能找到自己合适的 Java 开发工具。

展开阅读全文

页面更新:2024-04-22

标签:字节   基础教程   入门   命令   语言   代码   功能   环境   文件   基础   工具   程序   平台

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top