Java 大学实用教程 ( 第 3 版 ) 主讲:程继洪
第 1 章 Java 语言概述 本章导读 Java 语言的诞生Java 语言的诞生 学习 Java 的必要性 学习 Java 的必要性 Java 的特点及与 C/C++ 之关系Java 的特点及与 C/C++ 之关系 Java 程序开发Java 程序开发 JDK1.6 编译器的新规定 JDK1.6 编译器的新规定
Java 的先导知识与后继技术
Java 语言的诞生 Java 诞生于 1995 年,是 Sun 公司组织开发的一编程语 言, 主要贡献者是 James Gosling 。 1990 年 Sun 公司成立了由 James Gosling 领导的开发小组,开始致力于开发一 种可移植的、跨平台的语言,该语言能生成正确运 行于各种操作系统、各种 CPU 芯片上的代码。他们 的钻研和努力促成了 Java 语言的诞生。 Java 的发展 得利于 Internet 和 Web 的出现, Internet 上有各种不 同的计算机,它们可能使用完全不同的操作系统和 CPU 芯片,但仍希望运行相同的程序, Java 的出现 标志着真正的分布式系统的到来。
学习 Java 的必要性 Java 不仅可以用来开发大型的桌面应用程序,而且特别 适合于 Internet 的应用开发。目前, Java 语言不仅是一门正 在被广泛使用的编程语言,而且已成为软件设计开发者应当 掌握的一门基础语言。 Java 语言是面向对象编程,并涉及到 网络、多线程等重要的基础知识,而且很多新的技术领域都 涉及到了 Java 语言,因此,学习和掌握 Java 已成为共识,国 内外许多大学已将 Java 语言列入了本科教学计划, IT 行业对 Java 人才的需求正在不断的增长,一些软件公司对其开发人 员周期地进行 Java 的基础培训工作。在 IT 行业发达的北美洲, 有将近 60% 的软件开发人员在使用 Java 完成他们的工作, Evans Data 公司在 2002 年做的一项调查中发现,在北美洲, Java 的使用率已经接近 C/C++ 。
Java 的特点 1 .平台无关性 Java 语言和其他语言相比,最大的优势就是能够在所有的计 算机上运行,这也是 Java 风靡全球的主要原因。 2 .面向对象 面向对象编程是一种先进的编程思想,更加容易解决复杂的 问题。 3 .多线程 Java 的特点之一就是内置对多线程的支持。多线程允许同时 完成多个任务。 4 .安全 ( 1 )严格遵循面向对象的规范。这样封装了数据细节,只提供 接口给用户。增加了数据级的安全性。
( 2 )无指针运算。 java 中的操作,除了基本类型都是引 用的操作。引用是不能进行增减运算,不能被直接赋予内 存地址的,从而增加了内存级的安全性。 ( 3 )数组边界检查。这样就不会出现 C/C++ 中的缓存溢 出等安全漏洞。 ( 4 )强制类型转换。非同类型的对象之间不能进行转换 ,否则会抛出 ClassCastException ( 5 )语言对线程安全的支持。 java 从语言级支持线程。 从而从语法和语言本身做了很多对线程的控制和支持。 ( 6 ) java 的安全还通过编译器、检验器、类装载器、建 立安全策略等方式保证了 java 程序的安全性。 5 .动态
Java 与 C/C++ 之关系 如果你学习过 C++ 语言,你会感觉 Java 很眼熟,因为 Java 中许多基本语句的语法和 C++ 一样,像常用的循环语句、 控制语句等和 C++ 几乎一样,但不要误解为 Java 是 C++ 的增强 版, Java 和 C++ 是两种完全不同的语言,他们各有各的优势, 将会长期并存下去, Java 语言和 C++ 语言已成为软件开发者应 当掌握的语言。
Java 运行平台 1 .三种平台简介 目前 Java 运行平台主要分为下列 3 个版本: Java SE (曾称作 J2SE ) —— Java 标准版或 Java 标准平台。 Java SE 提供了标准的 JDK 开发平台,利用该平台可以开发 Java 桌面应 用程序和低端的服务器应用程序,也可以开发 Java Applet 。 Java EE (曾称作 J2EE ) —— Java 企业版或 Java 企业平台,可以构 建企业级的服务应用。 Java EE 平台包含了 Java SE 平台,并增加 了附加类库,以便支持目录管理、交易管理和企业级消息处理等 功能。 Java ME (曾称作 J2ME ) —— Java 微型版或 Java 小型平台。 Java ME 是一种很小的 Java 运行环境,用于嵌入式的消费产品中,如移 动电话、掌上电脑或其他无线设备等 。 返回
.安装 Java SE 平台 学习 Java 必须从 Java SE 开 始,因此,本书基于 Java SE 来 学习 Java 。目前 Sun 公司已发布 了 JDK 的 1.6 版本。 如果安装 JDK 选择安装到 E:\jdk1.6 目录下,则会生成如图 1.5 的目录结构。
( 1 )系统环境 Path 值的设置 JDK 平台提供的 Java 编译器( javac.exe )和 Java 解释 器( java.exe )位于 Java 安装目录的 bin 文件夹中,为了能在 任何目录中使用编译器和解释器,应在系统特性中设置 Path 。对于 Windows2000 、 Windows2003 、 Windows XP , 用鼠标右键点击 “ 我的电脑 ” ,弹出菜单,然后选择属性, 弹出 “ 系统特性 ” 对话框,再单击该对话框中的高级选项, 然后点击按钮 “ 环境变量 ” ,添加如下的系统环境变量(如 图 1.6 所示)。
( 2 )系统环境 ClassPath 值的设置 编辑系统环境变量 ClassPath 的值。对于 Windows2000 、 Windows2003 、 WindowsXP ,用鼠标右键点击 “ 我的电脑 ” ,弹出 菜单,然后选择属性,弹出 “ 系统特性 ” 对话框,再单击该对话框 中的高级选项,然后点击按钮 “ 环境变量 ” ,添加如下的系统环境 变量(如图 1.7 所示)。如果曾经设置过环境变量: ClassPath , 可点击该变量进行编辑操作,将需要的值加入即可。对于 Win9x , 用记事本编辑 Autoexec.bat 文件,将如下的设置语句加入即可, set classpth=E:\jdk1.6\jre\lib\rt.jar;.; 也可以在命令行窗口,如 MS-DOS 窗口键入命令: set classpth=E:\jdk1.6\jre\lib\rt.jar;.;
Java 程序开发 开发一个 Java 应用程序需经过三个步骤:编写源 文件、编译源文件生成字节码、加载运行字节码。 1 编写源文件 (1) 源文件的结构 使用一个文字编辑器,如 Edit 或记事本,来编写源 文件。不可使用 Word 编辑器,因它含有不可见字符。 Java 是面向对象编程, Java 应用程序的源文件是由若 干个书写形式互相独立的类组成。见例子 1例子 1
(2) 应用程序的主类 一个 Java 应用程序必须有一个类含有 public static void main ( String args[ ] )方法,称这 个类是应用程序的主类。 args[] 是 main 方法 的一个参数,是一个字符串类型的数组 (注意 String 的第一个字母是大写的),以 后会学习怎样使用这个参数。 返回
(3) 源文件的命名规则 源文件的命名规则是:如果源文件中有多个类, 那么只能有一个类是 public 类;如果有一个类是 public 类, 那么源文件的名字必须与这个类的名字 完全相同,扩展名是 java ;如果源文件没有 public 类,那么源文件的名字只要和某个类的名字相同, 并且扩展名是 java 就可以了。 (4) 良好的编程习惯 在编写程序时,一行最好只写一条语句,类体的 以方法的大括号最好也独占一行,并有明显的缩进。 本书在编写代码时,尽量遵守良好的编程习惯。 返回
编译 Java 源程序 当创建了 Hello.java 这个源文件后,就要使用编译 器( javac.exe )对其进行编译: 需要打开 MS-DOS 命令行窗口,进入 C 盘,然后 进入到 1000 目录中,如图 1.8 所示。 返回
运行 Java 程序 Java 应用程序必须通过 Java 虚拟机中的 Java 解释器( java.exe )来解释执行其字节码文件。 Java 应用程序总是从主类的 main 方法开始执行。 因此,必须如下运行 Java 应用程序: C:\1000\>java Hello 运行效果如图 1.9 所示。
当 Java 应用程序中有多个类时 java 命令执行的类名必须是主类的名字 例子 例子 page 9 必须把源文件保存起来并命名为 Tom.java 。假设保存 Tom.java 在 C:\1000 下。 ( 1 )编译源文件 c:\1000\>javac Tom.java 如果编译成功,目录 c:\1000 下就会有 Tom.class 和 Example.class 这两个字节码文件 了。 ( 2 ) 执行 c:\1000\>java Example java 命令后的名字必须是主类的名字,运 行效果如图 1.10 所示。 返回
JDK1.6 编译器的兼容性 JDK1.6 的编译器 javac.exe 和以前版本的编译器有了一 个很大的不同,不再向下兼容,也就是说,如果在编 译源文件时没有特别约定的话,用 JDK1.6 的编译器生 成的字节码只能在安装了高于 JDK1.6 或 JRE1.6 的 Java 平台环境中运行。 返回