第1章 Java概述
(视频讲解:13分钟)
Java语言是类型安全、可以编写跨平台面向对象的程序设计语言。开发人员可以使用Java语言开发应用程序、企业网站、手机和其他电子设备的应用程序,其应用范围非常广泛。本堂课将向读者介绍什么是Java语言、它有几个不同的版本、如何学好Java语言,并介绍如何搭建Java环境和Java的学习与帮助资源。配合后面章节的技术讲解,使读者细致地学习Java的具体内容,最后达到完全掌握Java语言的目的。
学习摘要:
Java语言的发展历史
Java的不同版本
Java的应用领域
学习Java语言的方法
搭建Java环境
Java程序的编写步骤
1.1 Java简介
Java是Sun Microsystems公司推出的能够跨越多平台的、可移植性最高的一种面向对象的编程语言。自从面世以来一直以易学易用、功能强大的特点得到了广泛的应用。其强大的跨平台特性使Java程序可以运行在任何一个系统平台上,甚至是手持电话、商务助理等电子产品,都可以运行Java程序,真正做到“一次编写,到处运行”。Java语言可以编写桌面应用程序、Web应用程序、分布式系统、嵌入式系统应用程序等,这使得Java语言成为应用范围最广阔的开发语言。本节将介绍Java语言的作用以及如何学好Java语言。
1.1.1 Java发展历史
1990年12月,SUN公司成立了一个名为(Green Team)绿色项目的小组,James Gosing也就是Java之父,也是这个小组的成员,这个小组的主要目标是开发一种能够在消费性电子产品上运行的分布式的系统架构,以掌握这种应用的趋势。
1992年9月3日(Green Team)绿色项目小组展示了Start7手持设备,它类似于今天的PDA,但是功能要比PDA还强大,5英寸的彩色LCD显示屏、PCMCIA接口并且支持无线通信。
这个设备中的程序是使用OAK程序设计语言实现的,OAK名字的由来是因为James Gosing的办公室窗外有一棵橡树,根据这颗橡树而命名。但是在注册商标时却发现这个名字已经被别的公司占用,后来更名为Java。
1993年全世界第一个Internet网页浏览器Mosaic诞生了,James Gosling认为Internet与Java的特性不谋而合,便使用Java以优异的功能,在Internet平台上编写出高交互性的网页程序,即Java Applet。如图1.1~图1.6所示是一些JDK附带的Applet的DEMO程序,读者可以在JDK安装文件夹找到更多更有趣的DEMO。在那个年代,还没有其他的程序设计语言能够做到这一点。
图1.1 条形报表
图1.2 网页时钟程序
图1.3 网页上的画图工具
图1.4 曲线布局
图1.5 3D的分子演示(可旋转)
图1.6 3D的直升机模型(可旋转)
1995年OAK被命名为Java编程语言,并于5月23日正式对外发布JDK(Java SE Development Kits)1.0版本,Java语言在这一时刻正式成立。它是一种极富创造力的面对对象的程序设计语言,同时也是一种跨平台的程序设计语言。用Java语言编写的程序,可以运行在任何平台和设备上,例如跨越IBM个人电脑、Windows视窗系统、MAC苹果系统、手机应用程序、各种电子设备等系统和硬件平台。真正实现“一次编写,到处运行”,它非常适合于企业网络和Internet环境,并且已成为Internet中最有影响力、最受欢迎的编程语言之一。
在2009年Oracle公司正式收购了Sun成为Java的新家园,Oracle致力于完善Java的功能,使它更加强大。
1.1.2 Java的几个版本
自从Sun推出Java以来,就力图使之无所不能,所以Java发展到现在,按应用范围分为3个版本。这3个版本分别是JavaSE、JavaEE和JavaME,这也就是Sun ONE(Open Net Environment)体系。下面分别介绍这3个Java版本。
1.JavaSE
JavaSE就是Java的标准版,主要用于桌面应用程序的开发,同时也是Java的基础,它包含Java语言基础、JDBC数据库操作、I/O输入输出、网络通信、多线程等技术,JavaSE的结构如图1.7所示。
图1.7 JavaSE的结构图
2.JavaEE
JavaEE是Java的企业版,主要用于开发企业级分布式的网络程序,如电子商务网站和ERP系统,其核心为EJB,JavaEE的API结构如图1.8所示。
图1.8 JavaEE的结构图
3.JavaME
JavaME主要应用于嵌入式系统开发,如掌上电脑、手机等移动通信电子设备,JavaME的结构如图1.9所示。
1.1.3 Java应用领域
图1.9 JavaME的结构图
借助Java,程序开发人员可以自由地使用现有的硬件和软件系统平台。这是因为Java是独立于平台的,它还可以应用于计算机之外的领域,Java程序可以在便携式计算机、电视、电话、手机和其他大量设备上运行。全世界的公司都已经发现了Java数不胜数的用途,它拥有无可比拟的能力,而且节省的时间和费用十分可观。Java应用领域主要包括以下几点。
桌面应用系统开发
嵌入式系统开发
电子商务应用
企业级应用开发
交互式系统开发
多媒体系统开发
分布式系统开发
Web应用系统开发
Java无处不在,它可应用于任何地方、任何领域,并且已拥有几百万个用户,其发展速度要快于在它之前的任何一种计算机语言。Java能够给企业和最终用户带来数不尽的益处。Oracle公司董事长兼首席执行官Larry Ellison说过:“Java正在进入企业、家庭和学校。它正在像Internet一样成为普遍存在的技术”。
1.1.4 Java项目成功案例
如果仔细观察,就会发现,Java就在我们身边。例如Java程序员经常使用的Java开发工具Eclipse、NetBeans、JBuilder等,另外还有RSSOwl、Limewire、Azureus、CyberDuck、OpenOffice等优秀软件都是使用Java编写的。还有各个手机厂商都为自己的产品提供了Java技术的支持,各种手机上的Java程序和游戏已经数不胜数。
Java语言的项目有很多,它们被应用于实际生活中的各行各业,例如清华大学的本科招生网、金网在线、中国债券信息网,其中涉及安全类的,例如银行类网站较多,包括中国邮政储蓄银行网站、中国农业银行网站、中国建设银行网站、中国工商银行网站、中国光大银行网站、交通银行网站等。它们的网站都使用了Java的网站开发技术,首页面效果分别如图1.10~图1.15所示。
图1.10 清华大学的本科招生网
图1.11 金网在线网站
图1.12 中国邮政储蓄银行网站
图1.13 中国债券信息网
图1.14 中国工商银行网站
图1.15 中国光大银行网站
1.1.5 怎样学好Java
如何学好Java语言,这是所有初学者共同面对的问题,其实,每种语言的学习方法都大同小异,需要注意的主要有以下几点。
明确自己的学习目标和大的方向,选择并锁定一门语言,按照自己的学习方向努力学习和认真研究。
初学者请不要看太多的书,先找本基础书系统的学习,很多程序开发人员工作了很久也只熟悉部分基础而已,没有系统的学习Java语言。
了解设计模式,开发程序必须编写程序代码,这些代码必须具有高度的可读性,这样编写的程序才有调试、维护和升级的价值,学习一些设计模式,就能够更好地把握项目的整体结构。
不要死记语法,在刚接触一门语言,特别是Java语言时,掌握好基本语法,并大概了解一些功能即可。借助开发工具(例如Eclipse或NetBeans)的代码辅助功能,完成代码的录入,这样可以快速地进入学习状态。
多实践、多思考、多请教。光读懂书本中的内容和技术是不行的,必须动手编写程序代码,并运行程序、分析运行结构,让你的大脑对学习内容有个整体的认识和肯定,用自己的方式去思考问题,编写代码来提高编程思想,平时多请教老师或经理、同事,和其他人多沟通技术问题,提高自己的技术和见识。
不要急躁,遇到技术问题,必须冷静对待,不要让自己的大脑思绪混乱,保持清醒的头脑才能分析和解决各种问题。可以尝试听歌、散步等活动放松自己。
遇到问题,首先尝试自己解决,这样可以提高自己的程序调试能力,并对常见问题有一定的了解,明白出错的原因,甚至举一反三,解决其他关联的错误问题。
多查阅资料,可以经常到Internet上搜索相关资料或者解决问题的办法,网络上已经摘录了很多人遇到的问题和不同的解决办法,分析这些解决问题的方法,找出最好、最合适自己的方法。
多阅读别人的源代码,不但要看懂别人的程序代码,还要分析编程者的编程细想和设计模式,并融为己用。
1.2 环境搭建
在学习Java语言之前首先要了解并搭建好它所需要的开发环境JDK(Java SE Development Kits),它是Java标准版本JavaSE的开发工具包。本节以Windows平台为例,介绍它的下载、安装与环境搭建。
1.2.1 JDK下载
Java的JDK是Sun公司的产品。由于Sun公司已经被Oracle收购,因此JDK可以在Oracle公司的官方网站下载。
下面介绍下载JDK的方法,具体步骤如下。
(1)打开IE浏览器,输入网址http://www.oracle.com/technetwork/java/javase/downloads/index.html,浏览JDK的下载页面。在JDK的下载页面中,单击如图1.16所示的DOWNLOAD按钮。
图1.16 JDK的下载页面
(2)在JDK的下载列表中,首先选中Accept License Agreement单选按钮,然后根据操作系统的位数选择适当版本的JDK进行下载,上述操作步骤如图1.17所示。在撰写本书时,JDK的最新版本为JDK 10。由于JDK 10仅为64位的Windows操作系统提供了下载链接,所以32位Windows操作系统的用户请使用最新版本的JDK 8。
图1.17 JDK的下载列表
1.2.2 JDK安装
下载Windows平台的JDK安装文件jdk-10_windows-x64_bin.exe后即可安装,步骤如下。
(1)双击已下载的安装文件,将弹出如图1.18所示的欢迎对话框,单击“下一步”按钮。
(2)在弹出如图1.19所示的JDK定制安装对话框中,既可以选择安装的功能组件,又可以更改JDK的安装路径,这里都选择默认设置,单击“下一步”按钮。
图1.18 欢迎对话框
图1.19 JDK定制安装对话框
(3)在弹出如图1.20所示的JRE定制安装对话框中,单击“下一步”按钮,即可安装JDK和JRE。
(4)成功安装JDK和JRE后,将弹出如图1.21所示的安装完成对话框,单击“关闭”按钮。
图1.20 JRE定制安装对话框
图1.21 安装完成对话框
1.2.3 配置环境变量
安装完JDK之后,必须配置环境变量方可使用Java环境。在Windows操作系统中,主要配置3个环境变量,分别是JAVA_HOME、Path和CLASSPATH。其中JAVA_HOME用来指定JDK的安装路径;Path用来使系统能够在任何路径下都可以识别Java命令;CLASSPATH用来加载Java类库的路径。在Windows 10系统中配置环境变量的步骤如下。
(1)右击“此电脑”图标,在弹出的快捷菜单中选择“属性”命令,在弹出的“属性”对话框左侧单击“高级系统设置”超链接,将打开如图1.22所示的“系统属性”对话框。
(2)单击“系统属性”对话框中的“环境变量”按钮,将弹出如图1.23所示的“环境变量”对话框,单击“系统变量”下的“新建”按钮,创建新的系统变量。
图1.22 “系统属性”对话框
图1.23 “环境变量”对话框
(3)弹出如图1.24所示的“新建系统变量”对话框,分别输入变量名JAVA_HOME和变量值C:\Program Files\Java\jdk-10,图1.24中的变量值是笔者的JDK安装路径,读者需要把图1.24中的变量值替换为读者本地的JDK安装路径,单击“确定”按钮。
(4)在图1.23所示的“环境变量”对话框中,双击Path变量,会弹出如图1.25所示的“编辑环境变量”对话框。
(5)在“编辑环境变量”对话框中,单击“编辑文本(I)…”按钮,对Path变量的变量值进行修改。先删除原变量值最前面的C:\ProgramData\Oracle\Java\javapath;后,再输入%JAVA_HOME%\bin;(注意:“;”为英文格式下的分号,且最后的“;”不要丢掉,它用于分割不同的变量值),修改后的效果图如图1.26所示,单击“确定”按钮。
(6)在图1.23所示的“环境变量”对话框中,单击“系统变量”下的“新建”按钮,新建一个CLASSPATH变量,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar,新建CLASSPATH变量并为其设置变量值的效果图如图1.27所示,单击“确定”按钮。
图1.24 设置JAVA_HOME变量的变量值
图1.25 “编辑环境变量”对话框
图1.26 设置Path变量的变量值
图1.27 设置CLASSPATH变量的变量值
JDK配置完成后,需确认其是否配置准确。在Windows 10系统下测试JDK环境需要先单击桌面左下角的图标(在Windows 7系统下单击图标),再直接输入cmd,接着按Enter键,启动命令提示符对话框,输入cmd后的效果图如图1.28所示。
在已经启动的命令提示符对话框中输入javac,按Enter键,将输出如图1.29所示的JDK的编译器信息,其中包括修改命令的语法和参数选项等信息,这说明JDK环境配置成功。
图1.28 输入cmd后的效果图
图1.29 JDK的编译器信息
1.3 编写第一个Java程序
编写Java应用程序,可以使用任何一个文本编辑器来编写程序的源代码,然后使用JDK搭配的工具进行编译和运行。现在流行的开发工具可以自动完成Java程序的编译和运行,还带有代码辅助功能,可以提示完整的语法代码,但是大型的IDE开发工具需要的系统资源较大,在开发一个简单的程序时,还是原始的文本编辑器速度较快。本节将介绍使用文本编辑器开发一个简单Java程序的步骤。
下面编写本书的第一个Java程序,它将使用命令提示符(CMD)输出HelloJava。程序编写步骤如下。
(1)使用文本编辑器编写Java程序代码的过程和平时编写文本文件一样,只需注意Java语法格式和编码规则即可。选择“开始”→“所有程序”→“附件”→“记事本”命令,在记事本中输入以下代码。
(2)选择“文件”→“保存”命令,选择存储位置为D盘根目录,输入文件名称“HelloJava.java”。在输入文件名称时,须使用英文双引号("")把文件名称包含起来,如"HelloJava.java",这样可以防止记事本为文件自动添加.txt扩展名。
(3)Java源程序需要编译成字节码才能够被JVM识别,需要使用JDK的javac.exe命令。因为HelloJava.java文件保存在D盘根目录下,在Windows 10系统下单击桌面左下角的图标(在Windows 7系统下单击图标),直接输入cmd,再按Enter键,启动命令提示符对话框。在命令提示符对话框中输入D:,按Enter键,将当前位置切换到D盘根目录下,再输入javac HelloJava.java,编译源程序。源程序被编译后,会在相同的位置生成相应的.class文件,这是编译后的Java字节码文件。
(4)在命令提示符对话框中输入java HelloJava,将执行编译后的HelloJava.class字节码文件。编译与运行HelloJava.java文件的步骤以及运行结果的效果图如图1.30所示。
图1.30 编译与运行HelloJava.java文件的步骤以及运行结果的效果图
1.4 实战
视频讲解
1.4.1 输出字符表情
很多技术图书中入门级别的实例或者第一个实例基本都是输出Hello World之类的一行文本,其实读者可以把实例扩展,输出自己感兴趣的内容,这样不但增加了学习兴趣,又巩固了入门基础。下面利用输出语句实现一个字符表情的输出,实例运行结果如图1.31所示。(实例位置:资源包\源码\01\实战\01)
1.4.2 计算两个整数的和
输出语句不但可以输出字母和各种符号,它还可以输出各种类型的数字以及它们之间的运算结果。在输出语句中可以直接输入运算公式,例如把200+432作为输出语句的内容,将会输出它们的计算结果,实例的运行结果如图1.32所示。(实例位置:资源包\源码\01\实战\02)
图1.31 实例运行结果
图1.32 实例输出结果
1.4.3 输出当前日期
程序能够输出的信息应该是广泛的,不受约束的。这样才能使程序更加灵活,在字符、数字和各种运算结果之外,用户常用的还有日期信息,即年月日,甚至还包括时间。下面将编码实现日期信息的输出,实例的运行结果如图1.33所示。(实例位置:资源包\源码\01\实战\03)
图1.33 实例输出结果
1.4.4 在控制台接收用户输入数字
System类除了out和err两个输出流之外,还有in输入流的实例对象作为类成员,它可以接收用户的输入。下面通过这个输入流从控制台接收用户输入的数字与字符串,实例的运行结果如图1.34所示。(实例位置:资源包\源码\01\实战\04)
图1.34 实例运行结果
1.4.5 计算用户输入数字的乘积
简单的数字运算只能体现计算机的速度与高效,程序需要与用户形成互动才有它存在的意义。例如从控制台接收用户输入的数字,然后使用这些数字进行运算,即形成了与用户的互动,而且可以根据用户需求来指定要运算的数字,实例的运行结果如图1.35所示。(实例位置:资源包\源码\01\实战\05)
图1.35 实例运行结果