1 Java 语言程序设计 计算机系 鲍金玲
2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和 名实施顾问。甲骨文公 司如今在 145 个国家和地区开展业务,全球客户达 家,合作伙伴达 家。甲骨文公司 2008 财年( 2008 年 5 月 31 日结束)销售收入达 224 亿美元。甲骨 文公司在多个产品领域和行业领域占据全球第一的位置,其中包括:数据库、数 据仓库、基于 Linux 系统的数据库、嵌入式数据库、增长最快的中间件、商业分析 软件、商业分析工具、供应链管理、人力资源管理、客户关系管理、应用平台套 件第一、零售行业、金融服务行业、通信行业、公共事业行业和专业服务行业等。 Sun 1982 年, Sun 公司诞生于美国斯坦福大学校园。创立伊始, Sun 的创立者就 率先提出了 “ 网络就是计算机 ” 的独特理念。 1986 年, Sun 公司上市。 1987 年, Sun 公司正式进入中国, Sun 公司是开放式网络计算的领导者,也是世界上最大的 UNIX 系统供应商,主要产品有 UltraSPARC 系列工作站、服务器和存储器等计算 机硬件系统, Sun ONE 品牌软件、 Solaris 操作环境和 Java 系列开发工具和应用 软件,以及各类服务等。目前 Sun 的足迹遍及美国、欧洲、中东、非洲、日本和 亚太等全球 100 多个国家和地区。
3 第一章 Java 语言概述 1. Java 语言的历史 2. Java 语言的特点 3. Java 应用程序及其实现 (※) 4. Java 程序运行环境 (※) 5. Java 应用程序的不同界面输出
4 Java 语言的历史 java.sun.com 的主页
5 SUN 公司简介 美国 SUN(Stanford University Network) 公司,在中国大 陆的正式中文名为 “ 太阳计算机系统(中国)有限公司 ” , ( 在台湾的正式中文名为 “ 升阳电脑公 司 ” 。 1982 年, Sun Microsystems 公司诞生于美国斯坦福大学校 园。 Sun 公司 1986 年上市,在 NASDAQ 的标识为 SUNW , 2007 年改为 JAVA 。 NASDAQ JAVA 自成立之初, Sun 就率先提出了开放标准、互操作性、异构 和参与等思想,希望在开放社区的基础上,将世界各地的人 们联系在一起。这些在当时是很激进的思想,但经过多年后, 这些思想已在世界各地开花结果。 1999 年, Sun 推出了以 Java 2 平台为核心的 J2EE 、 J2SE 和 J2ME 三大平台。随着三大平台的迅速推进,现在世界上 有一股巨大的 Java 应用浪潮。 Java 技术引发了一场无法停 止的大变革,为整个 Java 社团带来了巨大的潮水般的商业 机会。
6 Java 的诞生 早在 1990 年 12 月, SUN 公司就由 Patrick Naughton 、 Mike Sheridan 和 James Gosling 成立一个叫做 Green Team 的小组。这个小组的主要目标 是要发展一种分散式系统架构,使其能在消费性电子产品作业平台上执 行,例如 PDA 、手机、资讯家电等。 1992 年的 9 月 3 号, Green Team 发表了一款名叫 Star Seven(*7) 的机器, 它有点像现在我们熟悉的 PDA ,不过它有着比 PDA 还强大的功能,比如 无线通讯、 5 寸彩色的 LCD 、 PCMCIA 介面等等,现在市面上的 PDA 几乎 都不是它的对手,更不要说是早在 10 年前那个电脑还不普及的时代了。 而 Java 语言的前身 Oak 就是在那时诞生的,主要的目的当然是用来撰写 在 star 7 上的应用程序。为什么要叫 Oak 呢?原因是 James Gosling 办公 室的窗外,正好有一棵橡胶树 (Oak) ,顺手就取了这个名字。当我们在学 Java 时所提供的一些特性,其实在 Oak 就已经具备了,像安全性、网络 通讯、面向对象、垃圾收集( Garbage Collected )、多线程等等,是一 个相当优秀的程序语言。 至于为什么 Oak 会改名为 Java 呢?这是因为当时 Oak 要去注册商标时, 发现已经有另外一家公司已经先用了 Oak 这个名字。 Oak 这个名字不能 用,那要取啥新名字呢?工程师们边喝着咖啡讨论着,看看手上的咖啡, 突然灵机一动,就叫 Java 好了。就这样它就变成了我们所熟知的 Java 了。
7 什么是 Java? Java Technology 1. 编程语言 (Programming Language) 2. 运行平台 (Platform) 3. j2EE:java2 Enterprise Edition 企业版 j2SE:java2 Standard Edition 标准版 j2ME:java2 Micro Edition 嵌入版
8 Java 语言的特点 Java 编程语言的特点 1. 简单 2. 平台独立和可移植( jvm 翻译) 3. 鲁棒和安全 4. 面向对象 5. 垃圾回收机制 6. 分布式 7. 结构中立(编译成.class 文件) 8. 多线程 9. 解释性
9 Java 编程语言的特点 1. 简单 (Simple) 简单易学 不存在指针、单一继承、内存空间自动回收 2. 面向对象 (Object oriented) 类和对象 数据和方法的封装 封装、继承、多态性 注重于数据和操作数据的方法,而不是流 3. 解释性 (Interpreted) Java 编译器生成字节码, Java 解释器执行字节码 链接过程简单,仅仅将新的类装载 (load) 入运行环境 Java 语言的特点
10 Java 编程语言的特点 4. 平台独立 (Architecture neutral) 和可移植 (Portable) Java 编译器产生的字节码 (bytecode) 可运行在异种网 络环境中 ( 不同的硬件系统和不同的操作系统 ) Java 程序在不同的平台中行为一致,不存在数据类型 的不一致等现象 Java 语言的特点
11 Java 编程语言的特点 5. 鲁棒 / 健壮 (Robust) 和安全 (Secure) 取消了指针的不安全性,增强了程序的健壮性 内存管理简单, “new” 构造对象,对象释放 (automatic garbage collection) 可靠的语言 : compile-time checking 和 run- time checking 网络环境的应用不会产生恶意行为,为 Java 程 序构造一个个 (Sandbox ,具有安全策略的限 制 ) ,提高了安全性 Java 语言的特点
12 Java 编程语言的特点 6. 多线程 (Multithreaded) 例 : 浏览器应用中,播听音乐 / 拖动页面 / 后台下载页面 线程类 : java.lang.Thread/Runnable/ThreadGroup 等 原语支持 : synchronized 、 wait() 、 notify() 7. 分布式 (Distributed) 支持网络应用, java.net.* URL 类 Socket 类、 ServerSocket 类 DatagramSocket 类、 DatagramPacket 类 Java 语言的特点
13 平台 (Platform) 1. 程序运行的硬件和软件环境 2. 操作系统平台- Windows 2000 、 Linux 、 Solaris 、 MacOS 3. 操作系统与硬件的结合 Java 运行平台 (Platform) 1. Java 虚拟机 (Java Virtual Machine, Java VM) Java 解释器- Java 开发工具或可运行 applet 的 Web 浏览器 2. Java 应用编程接口 (Java Application Programming Interface, Java API) Java 语言的特点
14 Java 可以做什么? 1. 基本 : Objects, strings, threads, numbers, input and output, data structures, system properties, date and time 等 2. Applets 应用 3. 网络应用 : 实现基于 URL/TCP/UDP 的网络应用 4. 国际化应用 : 实现程序的本地化,并以适当的语言显示 5. 安全应用 : 电子签名、公钥和私钥管理、访问控制和用 户证书等 6. 软件构件 : JavaBeans 7. 对象串行化 : 实现远程方法执行 (Remote Method Invocation,RMI) 8. Java 数据库连接 (Java Database Connectivity, JDBC): 提供统一的方式访问关系型数据库 Java 语言的特点
15 为什么选择 Java? 1. 简单易学 (Get started quickly) 2. 写较少的代码 (Write less code) 3. 写更好的代码 (Write better code): garbage collection ( 防止内存泄漏 ) ,面向对象、 JavaBeans 构件机制、其他 API 复用代码,减少 bugs 4. 开发程序更快 (Develop programs more quickly) 5. 避免平台依赖性 (Avoid platform dependencies with 100% Pure Java) 6. 编写一次,随处运行 (Write once, run anywhere) machine-independent bytecodes 7. 发布软件更容易 (Distribute software more easily): 指 对软件的更新,利用动态加载功能,一处改动,自动更新, 不用重新编译整个程序 Java 语言的特点
16 简单的 Java 应用程序 Java 源程序-文件扩展名为 “.java” Java 字节码程序-文件扩展名为 “.class” /** * Exam1_1 class 实现一个应用 * 将特定的字符串显示到标准输出 */ public class Exam1_1 { public static void main(String[] args) { System.out.println(“hello world!"); }
17 定义类文件 1. 关键词 public :修饰符 2. 关键字 class :表示要定义一个类 ( 模板 ) ,包含数据变量 和方法 3. 关键字 import :表示引入程序外部定义的类 /** * Exam1_1 class 实现一个应用 * 将特定的字符串显示到标准输出 */ import java.lang.System; public class HelloWorld { public static void main(String[] args) { System.out.println (“hello world!"); } 简单的 Java 应用程序
18 注释的格式 (Comments) 1. /** ~~~ */ -文档注解 2. /* ~~~ */ -程序内的任意位置 3. // -对本行注解 /** * Exam1_1 class 实现一个应用 * 将特定的字符串显示到标注输出 */ public class HelloWorld { public static void main(String[] args) { System.out.println (“hello world!"); } 简单的 JAVA 应用程序
19 主方法 (main Method) 1. 每个 Java 应用程序必须有且只能有的一 个方法,程序执行的入口 2. 格式固定 /** * Exam1_1 class 实现一个应用 * 将特定的字符串显示到标注输出 */ public class HelloWorld { public static void main(String[] args) { System.out.println (“hello world!"); } 简单的 Java 应用程序
20 类和变量的引用 1. 类 (java.lang.System) , System 类的一个变量 out 2. 变量 out 是 PrintStream 类的一个实例, PrintStream 类实现标准输出流 3. 引用实例 out 的方法 println() 4. 变量和方法的引用通过 “.” 实现 public class HelloWorld { public static void main(String[] args) { System.out.println (“hello world!"); } 所有的 Java 类默认都引入 java.lang.* 简单的 Java 应用程序
21 Java 应用程序的结构特点 主类名称与 Java 源程序名必须一致 class MyClass {... } 所保存的文件为 : MyClass.java Java 程序严格区分大小写 Java 程序中所有方法都必须归属于某个类 简单的 Java 应用程序
22 书写规范 1. 标识符要有意义,见名知意 2. 花括号对 “{}” -类,方法 3. 语句分号 “;” 结尾 4. 对齐和缩进,空行分隔不相关语句 5. 区分大小写 6. 一条语句写一行,多时可以换行 7. 适当加注释 简单的 Java 应用程序
23 1. 获得 J2SDK 2. 安装 3. 系统环境变量设置 路径设置 (path) 我的电脑 属性 高级 环境变量,编辑 path 选项添加 “D:\Program Files\Java\j2sdk1.5.0\bin;” 类路径设置 (classpath) :我的电脑 属性 高 级 环境变量,添加 classpath 选项为 “D:\Program Files\Java\j2sdk1.5.0\jre\lib\rt.jar;.;” 注 : rt.jar -- the bootstrap classes (the RunTime classes that comprise the Java platform's core API). Java 程序运行环境
24 4. 检查 Java 运行环境设置 C:\>java Usage: java [-options] class [args...] (to execute a class) or java -jar [-options] jarfile [args...] (to execute a jar file) C:\>javac Usage: javac … … C:\>java –version java version "1.4.1_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01- b01) Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode) Java 程序运行环境
25 5. Java 应用程序的编译和运行 编写源文件 Exam1_1.java( 内容如前 ) 保存到 D 盘根目录 编译 : D:\>javac Exam1_1.java 生成 Exam1_1.class 文件 运行 : D:\>java Exam1_1 This is a Java Application Program. 问题 : (classpath 的路径设置 ) Exception in thread "main" java.lang.NoClassDefFoundError: … Java 程序运行环境
26 Java 应用程序的不同界面输出 字符界面 图形界面
27 Java 应用程序及其实现 Java 程序的种类 1. Java 小应用程序 (Java Applet ) 在 Web 浏览器中运行 ( 内嵌 Java 虚拟机 ) 特定标记 2. Java 应用程序 (Java Application) 独立的 Java 程序 程序入口方法 : public static void main(String[] args) { … } 3. Java Script 嵌入在 HTML 文件中的脚本语言 特定标记 … Netscape 引入 javascript
28 第一章 结束 !