Java是一种可以编写跨平台的、面向对象的程序设计语言。本章将向读者简单介绍Java语言和相关的特性、不同的版本以及学好Java语言的方法等。初识Java所需要掌握的东西,其主要目的是让读者对Java语言有一个整体的了解,然后再慢慢地学习具体内容,最后达到完全掌握Java语言的目的。 通过阅读本章,您可以: ? 了解Java语言 ? 了解Java的版本 ? 了解Java的应用领域 ? 了解如何学好Java ? 了解Java语言特性 ? 掌握不同平台的JDK环境搭建 ? 掌握Java程序的编写方法 1.1 Java简介 视频讲解:光盘\TM\lx\1\Java简介.exe Java是一种高级的面向对象的程序设计语言。使用Java语言编写的程序是跨平台的,从PC机到手持电话都有Java开发的程序和游戏,Java程序可以在任何计算机、操作系统和支持Java的硬件设备上运行。 1.1.1 什么是Java语言 Java是在1995年由Sun公司推出的一种极富创造力的面向对象的程序设计语言,它由Java之父詹姆斯?戈士林博士设计。作为Sun研究院院士,詹姆斯?戈士林亲手设计了Java语言,并完成了Java技术的原始编译器和虚拟机。Java最初的名字是OAK,在1995年被重命名为Java。 Java是一种通过解释方式来执行的语言,其语法规则和C++类似。同时,Java也是一种跨平台的程序设计语言,用Java语言编写的程序,可以运行在任何平台和设备上,如跨越IBM个人电脑、MAC苹果计算机、各种微处理器硬件平台,以及Windows、UNIX、OS/2、MAC OS等系统平台,真正实现“一次编写,到处运行”。Java非常适合于企业网络和Internet环境,并且已成为Internet中最具有影响力、最受欢迎的编程语言之一。 与目前常用的C++相比,Java语言简洁得多,而且提高了可靠性,除去了最大的程序错误根源,此外它还有较高的安全性,可以说它是有史以来最为卓越的编程语言。 Java语言编写的程序既是编译型的,又是解释型的。程序代码经过编译之后转换为一种称为Java字节码的中间语言,Java虚拟机(JVM)将对字节码进行解释和运行。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对JVM优化过的机器码形式保存,虚拟机将字节码解释为机器码,然后在计算机上运行。Java语言程序代码的编译和运行过程如图1.1所示。 图1.1 Java程序的编译和运行过程 1.1.2 Java的应用领域 借助Java,程序开发人员可以自由地使用现有的硬件和软件系统平台。这是因为Java是独立于平台的,它还可以应用于计算机之外的领域,Java程序可以在便携式计算机、电视、电话、手机和其他的大量电子设备上运行。Java的用途不胜枚举,它拥有无可比拟的能力,而且节省的时间和费用十分可观。Java的应用领域主要包括: ? 桌面应用系统开发。 ? 嵌入式系统开发。 ? 电子商务应用。 ? 企业级应用开发。 ? 交互式系统开发。 ? 多媒体系统开发。 ? 分布式系统开发。 ? Web应用系统开发。 Java无处不在,它可应用于任何地方、任何领域,并且已拥有几百万个用户,其发展速度要快于在它之前的任何一种计算机语言。Java能够给企业和最终用户带来数不尽的好处。Oracle公司董事长和首席执行官Larru Ellison说过:“Java正在进入企业、家庭和学校。它正在像Internet本身一样成为普遍存在的技术。” 如果仔细观察,就会发现,Java就在我们身边,如我们经常使用的Java开发工具Eclipse、NetBeans、JBuilder等,另外还有RSSOwl、Limewire、Azureus、CyberDuck、OpenOffice等优秀软件都是使用Java编写的。此外,各手机厂商都为自己的产品提供了Java技术的支持,各种手机上的Java程序和游戏已经数不胜数。 1.1.3 Java的版本 自从Sun推出Java以来,就力图使之无所不能。Java发展至今,按应用范围分为3个版本,即Java SE、Java EE和Java ME,也就是Sun ONE(Open Net Environment)体系。本节将分别介绍这3个Java版本。 1.Java SE Java SE就是Java的标准版,主要用于桌面应用程序的开发,同时也是Java的基础,它包含Java语言基础、JDBC(Java数据库连接性)操作、I/O(输入输出)、网络通信、多线程等技术。Java SE的结构如图1.2所示。 2.Java EE Java2 EE是Java2的企业版,主要用于开发企业级分布式的网络程序,如电子商务网站和ERP(企业资源规划)系统,其核心为EJB(企业Java组件模型)。Java EE的结构如图1.3所示。 3.Java ME Java ME主要应用于嵌入式系统开发,如掌上电脑、手机等移动通信电子设备,现在大部分手机厂商所生产的手机都支持Java技术。Java ME的结构如图1.4所示。 图1.2 Java SE的结构 图1.3 Java EE的结构 图1.4 Java ME的结构 1.1.4 怎样学好Java 如何学好Java语言,这是所有初学者需要共同面对的问题,其实每种语言的学习方法都大同小异,需要注意的主要有以下几点: ? 明确自己的学习目标和大的方向。选择并锁定一门语言,按照自己的学习方向努力学习和认真研究。 ? 初学者不要看太多的书,先找本基础书系统地学习。很多程序开发人员工作了很久也只是熟悉部分基础而已,并没有系统地学习Java语言。 ? 了解设计模式。开发程序必须编写程序代码,这些代码必须具有高度的可读性,这样编写的程序才有调试、维护和升级的价值。学习一些设计模式,能够更好地把握项目的整体结构。 ? 不要死记语法。在刚接触一门语言,特别是Java语言时,掌握好基本语法,并大概了解一些功能即可。借助开发工具(如Eclipse或NetBeans)的代码辅助功能,完成代码的录入,这样可以快速地进入学习状态。 ? 多实践,多思考,多请教。仅读懂书本中的内容和技术是不行的,必须动手编写程序代码,并运行程序、分析运行结构,从而对学习内容有个整体的认识和肯定。用自己的方式去思考问题,编写代码来提高编程思想。平时多请教老师或经理,和其他人多沟通技术问题,提高自己的技术和见识。 ? 不要急躁。遇到技术问题,必须冷静对待,不要让自己的大脑思绪混乱,保持清醒的头脑才能分析和解决各种问题。可以尝试听歌、散步等活动放松自己。 ? 遇到问题,首先尝试自己解决,这样可以提高自己的程序调试能力,并对常见问题有一定的了解,明白出错的原因,甚至举一反三,解决其他关联的错误问题。 ? 多查阅资料。可以经常到Internet上搜索相关资料或解决问题的方法,网络上已经摘录了很多人遇到的问题和不同的解决方法,分析这些解决问题的方法,找出最好、最适合自己的方法。 ? 多阅读别人的源代码。不但要看懂别人的程序代码,还要分析编程者的编程思想和设计模式,并融为己用。 1.1.5 Java API文档 API的全称是Application Programming Interface,即应用程序编程接口。Java API文档是Java程序开发不可缺少的编程词典,它记录了Java语言中海量的API,主要包括类的继承结构、成员变量和成员方法、构造方法、静态成员的详细说明和描述信息。可以在Java网站http://java.sun.com中找到最新版本的JDK文档(即API文档)。Java API文档的页面效果如图1.5所示。 图1.5 Java API文档页面效果 1.2 Java特性 视频讲解:光盘\TM\lx\1\Java特性.exe Java语言适用于Internet环境,是一种被广泛使用的网络编程语言。下面将分别介绍Java语言的一些特点。 1.2.1 简单 Java语言的语法简单明了,容易掌握,而且是纯面向对象的语言。Java语言的简单性主要体现在以下几个方面: ? 语法规则和C++类似。从某种意义上讲,Java语言是由C和C++语言转变而来的,所以C程序设计人员可以很容易地掌握Java语言的语法。 ? Java语言对C++进行了简化和提高。例如,Java使用接口取代了多重继承,并取消了指针,因为指针和多重继承通常使程序变得复杂。Java语言还通过实现垃圾自动收集,大大简化了程序设计人员的资源释放管理工作。 ? Java提供了丰富的类库和API文档以及第三方开发包,另外还有大量的基于Java的开源项目,现在JDK(Java开发者工具箱)也开放源代码了,读者可以通过分析项目的源代码,从而提高自己的编程水平。 1.2.2 面向对象 面向对象是Java语言的基础,也是Java语言的重要特性,因为它本身就是一种纯面向对象的程序设计语言,Java提倡万物皆对象,语法中不能在类外面定义单独的数据和函数,也就是说,Java语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。 1.2.3 分布性 Java的分布性包括操作分布和数据分布,其中操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别存放在多个不同的主机上,这些主机是网络中的不同成员。Java可以凭借URL(统一资源定位符)对象访问网络对象,访问方式与访问本地系统相同。 1.2.4 可移植性 Java程序具有与体系结构无关的特性,从而使Java程序可以方便地移植到网络的不同计算机中。同时,Java的类库中也实现了针对不同平台的接口,使这些类库也可以移植。 1.2.5 解释型 运行Java程序需要解释器。任何移植了Java解析器的计算机或其他设备都可以用Java字节码进行解释执行。字节码独立于平台,它本身携带了许多编译时的信息,使得连接过程更加简单,开发过程也就更加迅速,更具探索性。 1.2.6 安全性 Java语言删除了类似C语言中的指针和内存释放等语法,从而有效地避免了非法操作内存。Java程序代码要经过代码校验、指针校验等很多的测试步骤才能够运行,所以未经允许的Java程序不可能出现损害系统平台的行为,而且使用Java可以编写防病毒和防修改的系统。 1.2.7 健壮性 Java的设计目标之一,是编写多方面的、可靠的应用程序,Java将检查程序在编译和运行时的错误,并且消除错误。类型检查能帮助用户检查出许多在开发早期出现的错误。同时,很多集成开发工具(如Eclipse、NetBeans)的出现使编译和运行Java程序更加容易。 1.2.8 多线程 多线程机制能够使应用程序在同一时间并行执行多项任务,而且相应的同步机制可以保证不同线程能够正确地共享数据。使用多线程,可以带来更好的交互能力和实时行为。 1.2.9 高性能 Java编译后的字节码是在解释器中运行的,所以它的速度比多数交互式应用程序提高了很多。另外,字节码可以在程序运行时被翻译成特定平台的机器指令,从而进一步提高运行速度。 1.2.10 动态 Java在很多方面比C和C++更能够适应发展的环境,可以动态调整库中方法和变量的增加,而客户端却不需要任何更改。在Java中动态调整是非常简单和直接的。 1.3 搭建Java环境 视频讲解:光盘\TM\lx\1\搭建Java环境.exe Java编程的初学者会经常听到老师强调“工欲善其事,必先利其器”这句话,在学习Java语言之前,必须了解并搭建好它所需要的开发环境。要编译和执行Java程序,JDK(Java Developers Kits)是必备的。下面将具体介绍下载并安装JDK和配置环境变量的方法。 1.3.1 JDK下载 Java的JDK又称Java SE(以前称J2SE),可以在Sun公司的官方网站(http://java.sun.com)上下载。 下面以目前最新版本的JDK 6为例介绍下载JDK的方法,具体步骤如下: (1)打开IE浏览器,输入网址“http://java.sun.com”,浏览Java主页。在Java主页右侧的Popular Downloads栏中包含了热门下载的超链接,其中包括Java SE、Java EE、Java ME、NetBeans IDE等,在此单击Java SE超链接,如图1.6所示。 (2)在Java SE的下载页面中提供了下载最新版本JDK的超链接,即单击右侧的Download按钮,如图1.7所示。在撰写本书时,最新的JDK版本为JDK 6 Update 17。 图1.6 Java主页 图1.7 JDK的下载页 (3)在下载页面左侧默认下载安装文件的平台为Windows,用户可以根据需要选择其他平台如Linux,然后单击Download按钮下载JDK安装文件,如图1.8所示。 (4)接下来会出现JDK下载的登录页面,要求登录之后进行下载,也可以跳过此步骤,单击Skip this Step超链接,直接下载安装文件,如图1.9所示。 图1.8 下载JDK安装文件 图1.9 JDK下载的登录页面 (5)如果是下载Linux系统的JDK安装文件,可在图1.8所示的页面中的Platform下拉列表框中选择Linux平台,然后单击Download按钮。在图1.9所示的页面中同样单击Skip this Step超链接,将直接进入下一步下载页面。 (6)在如图1.10所示的下载页面中选择需要的Linux平台的下载文件,这里需要根据自己的Linux版本来选择下载文件,笔者的Linux是Red Hat 9 Linux,所以选择下载“jdk-6u17-linux-i586.bin”文件,直接在页面单击该文件的超链接即可。 图1.10 Linux平台JDK安装文件的下载页面 1.3.2 Windows系统的JDK环境 1.JDK安装 下载Windows平台的JDK安装文件“jdk-6u17-windows-i586.bin”后,安装步骤如下: (1)运行安装文件,安装向导会要求接受Sun公司的许可协议,单击“接受”按钮。 (2)在“自定义安装”对话框中可以选择安装的功能组件,然后单击“更改”按钮,更改JDK的安装路径,再单击“下一步”按钮,如图1.11所示。 (3)开始JDK的安装。在安装过程中会弹出JRE的“目标文件夹”对话框,在这里可以更改JRE的安装路径,如图1.12所示。然后单击“下一步”按钮,安装向导会继续完成安装进程。 图1.11 JDK“自定义安装”对话框 图1.12 JRE“自定义安装”对话框 2.在Windows XP和Winows 2003系统中配置环境变量 在Windows XP和Windows 2003系统中配置环境变量的步骤如下: (1)在“我的电脑”图标上单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,弹出“系统属性”对话框,如图1.13所示。选择“高级”选项卡,然后单击“环境变量”按钮,弹出“环境变量”对话框,如图1.14所示。单击“系统变量”栏中的“新建”按钮,创建新的系统变量。 (2)弹出“新建系统变量”对话框,分别输入变量名“JAVA_HOME”和变量值“C:\Program Files\Java\jdk1.6.0_17”,其中变量值是笔者的JDK安装路径,读者需要根据自己的计算机环境进行修改,如图1.15所示。单击“确定”按钮,关闭“新建系统变量”对话框。 图1.13 “系统属性”对话框 图1.14 “环境变量”对话框 (3)在图1.14所示的“环境变量”对话框中双击Path变量对其进行修改,在原变量值之前添加“.;%JAVA_HOME%\bin;”变量值(注意:最后的“;”不要丢掉,它用于分割不同的变量值),如 图1.16所示。单击“确定”按钮完成环境变量的设置。 图1.15 “新建系统变量”对话框 图1.16 设置Path环境变量值 (4)JDK安装成功之后必须确认环境配置是否正确。在Windows系统中测试JDK环境需要选择“开始”/“运行”命令,然后在“运行”对话框中输入“cmd”并单击“确定”按钮启动控制台。在控制台中输入“javac”命令,按Enter键,将输出JDK的编译器信息,其中包括修改命令的语法和参数选项等信息。这说明JDK环境搭建成功。 3.Windows 7系统中配置环境变量 在Windows 7系统中配置环境变量的步骤如下: (1)在“开始”菜单的“计算机”图标上单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,在弹出的“属性”对话框左侧单击“高级系统设置”超链接,将出现如图1.17所示的“系统属性”对话框。 (2)单击“环境变量”按钮,将弹出“环境变量”对话框,如图1.18所示,单击“系统变量”栏中的“新建”按钮,创建新的系统变量。 图1.17 “系统属性”对话框 图1.18 “环境变量”对话框 (3)弹出“新建系统变量”对话框,分别输入变量名“JAVA_HOME”和变量值(即JDK的安装路径),其中变量值是笔者的JDK安装路径,读者需要根据自己的计算机环境进行修改,如图1.19所示。单击“确定”按钮,关闭“新建系统变量”对话框。 (4)在图1.18所示的“环境变量”对话框中双击Path变量对其进行修改,在原变量值最前端添加“.;%JAVA_ HOME%\bin;”变量值(注意:最后的“;”不要丢掉,它用于分割不同的变量值)。单击“确定”按钮完成环境变量的设置。 (5)JDK安装成功之后必须确认环境配置是否正确。在Windows系统中测试JDK环境需要选择“开始”/“运行”命令(没有“运行”命令可以按Windows+R组合键),然后在“运行”对话框中输入“cmd”并单击“确定”按钮启动控制台。在控制台中输入“javac”命令,按Enter键,将输出JDK的编译器信息,其中包括修改命令的语法和参数选项等信息。这说明JDK环境搭建成功。 1.4 第一个Java程序 视频讲解:光盘\TM\lx\1\第一个Java程序.exe 编写Java应用程序,可以使用任何一个文本编辑器来编写程序的源代码,然后使用JDK搭配的工具进行编译和运行。当然,现在流行的开发工具可以自动完成Java程序的编译和运行,甚至还带有代码辅助功能,可以提示完整的语法代码,但是大型的IDE开发工具需要的系统资源较大,在开发一个简单的程序时,还是原始的文本编辑器速度较快。本节将介绍使用文本编辑器开发一个简单Java程序的步骤。 【例1.1】 下面编写本书的第一个Java程序,它在屏幕(也称控制台)上输出“HelloJava”信息。程序编写步骤如下:(实例位置:光盘\TM\sl\1.01) (1)使用文本编辑器编写Java程序代码的过程和平时编写文本文件是一样的,只需注意Java语法格式和编码规则即可。选择“开始”/“所有程序”/“附件”/“记事本”命令,在“记事本”程序中输入以下代码: public class HelloJava { public static void main(String[] args) { System.out.println("Hello Java"); } } (2)选择“文件”/“保存”命令,选择存储位置在C盘根目录,在输入文件名称时,使用双引号“ ”符号把文件名称包含起来,如输入“HelloJava.java”,其中双引号是英文字符,不是中文的符号。这样可以防止“记事本”程序为文件自动添加“.txt”扩展名。 (3)Java源程序需要编译成字节码才能够被JVM识别,这需要使用JDK的“javac.exe”命令。假设HelloJava.java文件保存在C盘,选择“开始”/“运行”命令,在“运行”对话框中输入“cmd”,单击“确定”按钮,启动控制台,在控制台中输入“cd\”命令将当前位置切换到C盘根目录,然后输入“javac HelloJava.java”命令编译源程序。源程序被编译后,会在相同的位置生成相应的“.class”文件,这是编译后的Java字节码文件。 (4)在控制台中输入“java HelloJava”命令将执行编译后的HelloJava.class字节码文件。编译与运行Java程序的步骤以及运行结果如图1.20所示。 图1.20 编译与运行Java程序的步骤以及运行结果 1.5 小 结 本章简单描述了什么是Java语言并介绍了其相关特性,另外还分别介绍了在Windows和Linux系统平台中搭建Java环境的方法,以及编写Java程序的简单步骤。通过本章的学习,读者应该能够了解什么是Java和它的不同版本以及如何学习Java语言。搭建Java环境是本章的重点,读者应该熟练掌握。 1.6 实践与练习 1. 尝试修改例1.1的实例,使程序输出“这是我的第一个Java程序”。(答案位置:光盘\TM\sl\1.02) 2.尝试编写Java程序,使程序输出如图1.21所示的运行结果。(答案位置:光盘\TM\sl\1.03) 图1.21 Java程序运行结果