编程大讲坛:Java核心开发技术从入门到精通
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1篇 编程基础篇

第1课 学习Java前的准备

Java风靡全球多年,它为什么能受到这么多人的欢迎?在学习Java之前,用户必须弄清楚Java具有什么样的特性,用它能干些什么,在本课中,将重点讲解什么是Java,然后再讲解Java在电脑中是如何运行的,也就是搭建一个能运行Java程序的平台。

1.1 本课学习目标

在本课的内容中,将详细讲解Java常识性知识,引导读者进一步了解Java语言,为步入本书后面知识的学习打下坚实的基础,本课的具体学习目标如下:

● 了解什么是Java。

● 安装Java。

● 配置Java环境。

● 运行Java程序。

在安装好Java和配置完Java环境变量后,用户就可以运行Java了。

1.2 Java概述

Java语言是美国Sun Microsystems公司1995年推出的面向对象的程序设计语言,该语言充分考虑到了互联网时代的特点,非常适合互联网的开发,在设计上它具有跨平台、安全、面向对象等特点,因此深受广大程序爱好者的青睐,下面将对其发展过程与特点进行详细讲解。

1.2.1 Java简介

Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java Applet)显示了Java的潜力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java Applet。

Java平台由Java虚拟机(Java Virtual Machine)和Java应用编程接口(Application Programming Interface,API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可以运行了。现在Java平台已经嵌入了几乎所有的操作系统。Java程序可以只编译一次,就可以在各种系统中运行。

Java分为3个体系J2SE(Java2 Standard Edition)、J2EE(Java 2 Platform,Enterprise Edition)和J2ME(Java 2 Micro Edition),它们翻译中文的意思分别是Java2标准版、Java2企业版和Java2移动设备版,它们3个适合不同的人群,对于程序初学者,建议使用J2SE,如果是企业级的开发就需要使用J2EE,如果手机等设备开发,就需要使用J2ME。

1.2.2 Java特点

Java是一门优秀的程序设计语言,自然它具有平台性、简单性、面向对象语言、健壮性、多线程、自动内存管理等一系列特点,其特点介绍如下。

Java语言是简单的:Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换等。特别的是,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

Java语言是面向对象的:Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯面向对象程序设计语言。

Java语言是分布式的:Java语言支持Internet应用的开发,在基本的Java应用编程接口中都有一个网络应用编程接口(Java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

Java语言是健壮的:Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

Java语言是安全的:Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)成为Java应用设置的安全哨兵。

Java语言是体系结构中立的:Java程序(后缀为Java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行,这种途径适合用于异构的网络环境和软件的分发。

Java语言是可移植的:这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。

Java语言是解释型的:Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,在执行过程中需要的类在连接阶段被载入到运行环境中。

Java是高性能的:与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。

Java语言是多线程的:在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程同时执行,并提供多线程之间的同步机制(关键字为synchronized)。

Java语言是动态的:Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境中,也可以通过网络来载入所需要的类,这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

1.2.3 Java语言的应用前景

不管你对Java是怎样一个态度,有一点不可否认,Java是现在全球最时髦的开发工具之一,它拥有一套庞大且完善的类库,内置了其他语言需要靠库甚至是操作系统才能支持的功能,拥有一个虚拟机,总之,Java的出现,确实给整个程序界带来了巨大的冲击,也许现在还无法准确地评估Java为整个IT业带来的影响,但是有一点却毋庸置疑,Java将不可避免地影响一代程序作为一名将要成为职业程序员的学习者,也许应该认真评估一下Java在可以预见的一段时间里带给自己的影响。在美国,越来越多的应用是基于Java开发的,Java在企业应用中的日臻完美,打消了许多人对Java无法应用于大型企业级应用的顾虑,而在国内,Java也已如火如荼,据调查,在未来几年内,将会出现20万个Java程序员职位需求,也许这将超过其他任何一种程序员的需求。

1.2.4 JDK、JRE和JVM

要开发和运行Java运行程序,必须先弄懂JDK、JRE和JVM专业术语,下面详细介绍这几个专业术语。

● JDK:是Java的开发环境包,是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar),主流的JDK是Sun公司发布的,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK、BEA公司的Jrocket、GNU组织开发的JDK等,其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun的JDK包含的JVM高出许多,从Sun的JDK 5.0开始,提供了泛型等非常实用的功能,其版本信息也不再延续以前的1.2、1.3、1.4,而是变成了5.0、6.0。从6.0开始,其运行效率得到了非常大的提高,尤其是在桌面应用方面。

● JRE:运行Java程序所必需的环境的集合,包含JVM标准实现及Java核心类库,JRE为JavaRuntimeEnvironment的简称,JavaRuntimeEnvironment(包括JavaPlug-in)是Sun的产品,包括两部分:JavaRuntimeEnvironment和JavaPlug-in,JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。

● JVM:Java Virtual Machine(Java虚拟机),它是一个虚构出来的计算机,是通过在实际的计算机上模拟各种计算机功能来实现的,Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令。

1.3 Java的开发环境

要开发Java,必须搭建一个开发和运行环境,当今时代,人们用得最多的是Sun公司提供的JDK,JDK开发包包含了编译、运行和调试Java程序所需要的工具。JDK,用户可以在Sun官方网站下载JDK,然后将其安装,再进行配置,即可完成开发环境的配置,下面对其进行详细讲解。

1.3.1 下载和安装JDK

下载和安装JDK的方法十分简单,其具体操作步骤如下。

(1)在IE地址栏输入官方下载地址或者Sun中国技术社区下载地址“http://developers.sun.com.cn/download/java_se.html”;用户可以根据自己的系统选择需要的下载地址,如在打开的网页中单击“jdk-6u11-windows-i586-p.exe”超级链接,如图1-1所示。

图1-1 下载JDK

(2)下载完JDK后,双击JDK安装程序,将打开如图1-2所示的初始安装界面,单击按钮,如图1-2所示。

图1-2 “许可证协议”对话框

(3)打开“自定义安装”对话框,用户可以选择需要安装的组件,同时还可以通过单击按钮来改变安装的路径,在这里选择默认设置,单击按钮,如图1-3所示。

图1-3 “自定义安装”对话框

(4)打开“正在安装”窗口,程序将会自动安装,如图1-4所示,安装完成后,将会打开“目标文件夹”对话框,单击按钮,来改变JRE的安装路径,在这里选择默认设置,单击按钮,如图1-5所示。

图1-4 “正在安装”窗口

图1-5 “目标文件夹”对话框

(5)打开“正在安装Java”窗口,显示着安装的进程,如图1-6所示,安装完成后,单击按钮将会打开如图1-7所示。

图1-6 “正在安装Java”窗口

图1-7 “已成功安装”对话框

1.3.2 设置环境变量

在安装完成JDK后,并不能使用,因为还需要对其进行配置、设置环境变量,设置环境变量的目的是让系统自动寻找需要的命令,其具体操作步骤如下。

(1)选择“我的电脑”图标,单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,然后单击“高级”选项卡,在该选项卡中单击按钮,在“环境变量”对话框的“系统变量”栏中,单击按钮,打开“新建系统变量”对话框,在“变量名”文本框中输入“JAVA_HOME”,在“变量值”文本框中输入JDK的路径,如“C:\Program Files\Java\jdk1.6.0_10”,单击按钮,如图1-8所示。

图1-8 “新建系统变量”对话框

(2)返回到“环境变量”对话框,在“系统变量”栏中,单击按钮,如图1-9所示。

图1-9 “环境变量”对话框

(3)再次打开“新建系统变量”对话,在“变量名”文本框中输入“PATH”,在“变量值”文本框中输入“%JAVA_HOME%\bin;%PATH%”,设置完成后,单击按钮,如图1-10所示。

图1-10 设置PATH

(4)用相同的方法,打开“新建系统变量”对话框,在“变量名”文本框中输入“CLASSPATH”,在“变量值”文本框中输入“.\;%JAVA_HOME%\lib\tools.jar”,单击按钮,如图1-11所示。

图1-11 设置“CLASSPATH”

(5)在“环境变量”对话框中,单击按钮,然后再在“系统属性”对话框中,单击按钮,设置完成后,如图1-12所示。

图1-12 设置完成

(6)选择“开始”→“运行”命令,打开“运行”对话框,在“打开”文本框中输入“cmd”,然后单击按钮。

(7)输入“javac”命令,打开如图1-13所示的信息。

图1-13 输入“javac”命令

(8)然后在窗口中输入“java”命令,如图1-14所示。

图1-14 输入“java”命令

1.3.3 升级JDK

当JDK安装一定的时间后,Sun公司有可能对JDK进行更新,在任务栏处出现一个咖啡的形状,用户单击它,可以进行升级JDK,其具体操作步骤如下。

(1)打开“有可用的Java更新程序”窗口,单击按钮,如图1-15所示。

图1-15 更新JDK

(2)打开“欢迎使用Java(TM)和JavaFX(TM)”对话框,单击按钮,如图1-16所示。

图1-16 接受许可协议

(3)打开“正在安装Java”窗口,JDK正在安装需要的重要的组件,如图1-17所示。

图1-17 “正在安装Java”窗口

(4)打开“您已成功安装Java(TM)”对话框,单击按钮,如图1-18所示。

图1-18 “您已成功安装Java(TM)”对话框

1.4 第一个Java程序

通过第一个Java程序,用户将会明白Java程序是如何执行的。Java程序的结构,Java程序的开发步骤,下面将进行详细讲解。

1.4.1 开发Java程序的步骤

开发一个Java程序,一般有以下几个步骤。

(1)创建Java源程序:Java源程序一般用Java作为扩展名,是一个文本文件,用Java语言写成的,可以用任何文本编辑器创建与编辑。

(2)编译源程序:Java编译器,“Javac”读取你的Java源程序并翻译成Java虚拟机能够明白的指令集合,且以字节码的形式保存在文件中。通常,字节码文件以class作为扩展名。

(3)运行class(字节码)文件:Java解释器读取字节码,取出指令并且翻译成计算机能执行的代码,完成运行过程。

1.4.2 编写Java程序

新建一个文件夹,如在D盘里新建“javaone”,然后在文件夹里新建一个记事本,其具体操作步骤如下。

(1)选择“工具”→“文件夹命令”命令,打开“文件夹选项”对话框,单击“查看”选项卡,在“高级设置”列表栏中取消勾选复选框,单击按钮,如图1-19所示。

图1-19 “文件夹选项”对话框

(2)打开记事本,输入以下程序。

            /**
              * 此类用于在屏幕上显示消息。
              *
              *@version1.0,2009 年4月20日
              * @author Michael
              */
            class Message{
                /**
                * 这是一个main方法
                */
                public static void main(String [] args){
                  /* 输出此消息 */
                  System.out.println("欢迎来到Java世界!");
                }
            }

输入完成后,选择“文件”→“保存”命令,如图1-20所示。

图1-20 输入Java程序

(3)将这个文件命名为“Message.java”程序,打开“重命名”对话框,单击按钮,如图1-21所示。

图1-21 “重命名”对话框

(4)选择“开始”→“运行”命令,打开“运行”对话框,在“打开”文本框中输入“cmd”,单击按钮,如图1-22所示。

图1-22 “运行”对话框

(5)在“CMD”窗口中输入“D:”,然后再输入“cd javaone”打开文件夹,最后输入“javac message.java”,执行命令后,在文件夹中可以看到多了一个“Message.class”的文件,如图1-23所示。

图1-23 编译Java程序

(6)在“CMD”窗口中输入“javac message java”,按回车键,可以看到运行结果,如图1-24所示。

图1-24 执行结果

这个程序只是输出一句话“欢迎进入Java世界!”,至于程序是什么意思,将在后面进行讲解,通过这个程序,用户将会明白Java程序的编译和运行的原理,如图1-25所示,用户也将明白Java是通过Java虚拟机进行跨操作系统平台的,用户只需一次编译,就可以多次运行。

图1-25 Java执行的过程

TIPS

Java源程序里面一般只有一个类(class),但允许有多个类(class),只能有一个带“public”修饰符的类。Java源程序的文件名必须与“public”修饰符类名相同,编译后,将形成对应的(class)文件,这些内容将在后面进行详细讲解,这里只作了解。

1.5 本课回顾和网络关键词

在本课的内容中,对Java知识进行了介绍,讲解了Java语言的特点和Java语言的应用前景,然后讲解了JDK的下载与安装、升级与设置环境变量,最后通过一个简单的Java程序,在实践中给读者讲解了Java编译与运行的全过程,本节将对本课中的主要知识点进行简要回顾,并总结出本课知识点的网络关键词。

1.本课回顾

在本课的内容中,主要讲解了Java的基本知识,回顾本课内容,主要的知识点概括如下。

(1)Java概述。

Java语言是美国Sun Microsystems公司1995年推出的面向对象的程序设计语言,该语言充分考虑到了互联网时代的特点,非常适合互联网的开发,在设计上它具有跨平台、安全、面向对象等特点,因此深受广大程序爱好者的青睐,对象的主要知识点如下。

● Java简介。

● Java特点。

● Java语言的应用前景。

(2)Java开发环境。

需要开发Java,必须要搭建一个开发和运行环境,需要安装JDK,用户可以在Sun官方网站下载,然后将其安装,再进行配置,即可完成开发环境的配置,Java的开发环境主要知识点如下。

● 下载和安装JDK。

● 设置环境变量。

● 升级JDK。

(3)Java编译和执行。

讲解Java程序的步骤和编写Java程序。

2.本课网络关键词

经上述对本课内容回顾后,在下面的内容中,将对本课中的主要知识点进行收集整理,总结出本课知识点的网络关键词。

本课知识点的网络关键词有:“HotJava”、“J2SE(Java2 Standard Edition)”、“J2EE(Java 2 Platform,Enterprise Edition)”、“J2ME(Java 2 Micro Edition)”、“JDK”。

通过整理上述网络关键词,读者可以在百度、Google或Yahoo等网络中获取上述关键词的基本知识,并且可以获取每个知识点的对应使用实例,读者可以通过获取的实例来加深对知识的理解。

希望通过本课内容的学习,读者能够掌握Java的基本知识有一个初步的认识,为进入本书后面知识的学习打下坚实的基础。