• 1. 第1章 Java概述 §1.1 了解Java §1.2 Java应用及其运行方式 §1.3 JDK §1.4 MyEclipse1
  • 2. §1.1 了解Java一. Java的诞生和发展 二. Java的特点 三. Java核心技术2
  • 3. 一. Java的诞生和发展1.前身 1991年 Sun公司成立Green项目组 Green项目组研究设计新语言 Oak(橡树)Java取名于印度尼西亚-爪哇岛屿-盛产咖啡 3
  • 4. 一. Java的诞生和发展Java之父James Gosling James Gosling以“Java技术之父”而闻名于世。他是Java 技术的创始人,他亲手设计了Java语言,并开发了Java编译器和Java虚拟机,使Java成为了世界上最流行的开发语言。Java支持的计算模式,已经成为了互联网的标准编程模式以及分布式企业级应用的事实标准。 詹姆斯·戈士林现任Sun公司副总裁及Sun研究院院士。 4
  • 5. 一. Java的诞生和发展2.诞生及发展历程1995年5月23日,Java语言诞生,Sun公司发布第1版Java开发工具包(Java Development Kit, JDK)。 1996年1月,JDK1.0和HotJava诞生 HotJava通过嵌入在Web网页中的Applet运行Java程序。 1997年2月18日,JDK1.1发布 5
  • 6. 一. Java的诞生和发展3.Java 2平台1998年2月,JDK1.2发布,在图形化用户界面、数据库互连 以及其他许多方面作了重大改进。由于该版本具有重大改变, 所以从Java 1.2版本后的Java语言也称作Java 2语言。 Java 2不仅兼容于智能卡和小型消费类设备,还兼容于大型服务器系统,使软件开发商、服务提供商和设备制造商更加容易抢占市场机遇。 http://java.sun.com6
  • 7. 1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME) 2004年,J2SE1.5发布,更名为J2SE 5.0 2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。 此时,Java的各种版本已经更名,以取消其中的数字“2”: J2EE——Java EE,J2SE——Java SE,J2ME——Java ME 目前版本是JDK1.6 一. Java的诞生和发展4. Java ME、Java SE、Java EE三大平台7
  • 8. 一. Java的诞生和发展4. Java ME、Java SE、Java EE三大平台(1)嵌入式平台Java ME(Java Micro Edition) 适用于小型设备和智能卡的Java嵌入式平台,支持智 能卡业务、移动通信、电视机顶盒等功能。(2)标准平台Java SE(Java Standard Edition) 适用于桌面系统的Java标准平台,为创建和运行Java 程序提供了最基本的环境,包括Java编译器、Java类库、 Java运行时环境和Java命令行工具。8
  • 9. 一. Java的诞生和发展(3)企业级平台Java EE(Java Enterprise Edition) Java的企业级应用平台,提供分布式企业软件组 件架构的规范,具有Web性能,具有更高的特性、灵 活性、简化的集成性、便捷性以及Java EE服务器之间 的互操作性。4. Java ME、Java SE、Java EE三大平台9
  • 10. 二.Java的特点1. 平台无关性平台无关性—指一个应用程序能够运行于不同的操作 系统平台,即“Write once, run anywhere”。Java采用虚拟机技术支持平台无关性。 Java虚拟机(JVM)是一套支持Java语言运行的软件 系统,运行于操作系统之上。 高级语言程序→可执行文件(*.exe)→操作系统执行 Java源程序(*.java)→字节码文件(*.class)→JVMJava语言本身设计也体现出平台无关性。10
  • 11. 二.Java的特点2.完全面向对象和简单性完全面向对象:所有设计都必须在类中实现,一个 Java程序就是多个类的集合; 语法:放弃了C++语言的全程变量、goto语句、宏定义、全局函数以及结构、联合和指针数据类型。 面向对象概念:放弃了多重继承、友元类和运算符重载,采用“单重继承+接口”的方式代替多重继承,提供语言级的内存自动管理和异常处理方式。11
  • 12. 二.Java的特点3.可靠性语言级别 提供严密的语法规则,在编译和运行时进行严格检查,降低程序出错的可能性。 提供异常处理机制,是程序具备在运行过程中及时发现并处理运行时错误的能力,保证Java程序运行的稳定和可能。 运行架构级别 提供资源回收机制,对内存资源进行自动管理,跟踪程序使用的所有内存资源,自动回收不再被使用的内存资源。 12
  • 13. 二.Java的特点4.安全性5.多线程采用域管理方式的安全模型,无论是本地代码还是 远程代码,都可以通过配置策略设定可访问的资源域。 这种策略使未经授权的代码不能对用户本地资源 进行操作,更好地支持了企业级应用,也消除了区分 本地代码和远程代码带来的困难。多线程机制使一个进程能够被划分成多个线程,每个线程执行一个特定功能,多个线程能够并发执行。13
  • 14. 二.Java的特点6.直接支持分布式的网络应用早期采用Applet嵌入浏览器运行方式实现Web应用,完成动画、游戏、交互式事务处理等功能,使Web页面具有动感。 目前,JSP提供服务器端的动态Web页面设计,功能更强,效率更高。 Java核心类库包括一个支持HTTP、SMTP和FTP等基于TCP/IP协议的类库,使得Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统完全相同。14
  • 15. 三. Java核心技术JDBC(Java Database Connectivity) 即Java数据库连接,定义Java应用程序与关系型 数据库连接的规范。——Windows的ODBC JSP JSP是Sun公司推出的一种动态网页技术标准,一 种运行于Web服务器端的标记语言,它能够将Java语 言直接嵌入到HTML文档中,可以建立跨平台、安全、 高效的动态网站。 —— Microsoft的ASP基于Windows 操作系统15
  • 16. JavaBeans和EJB JavaBeans 是Java的对象组件技术,提供组件复用的 关键技术,类似于Windows的ActiveX。在JSP中可以使 用JavaBeans。 EJB(Enterprise JavaBeans)提供企业级JavaBeans。 三. Java核心技术JavaMail JavaMail提供E-mail邮件服务的支持类库,不仅支 持SMTP服务器,也支持IMAP服务器。16
  • 17. §1.2 Java应用及其运行方式一. Application和Applet 二. Java虚拟机执行Java程序17
  • 18. 一. Application和Applet Application Application是能够独立运行的应用程序,既可以 以DOS的命令行方式运行,也可以以图形用户界面方 式运行。【例1.1】 显示字符串的Application应用程序。18
  • 19. Application应用程序示例public class Hello { public static void main(String args[]) { System.out.println("Hello!"); } }19
  • 20. Applet Applet是可以嵌入Web页面的最小应用程序,它不 能独立运行,必须嵌入超文本(*.html)中,由浏览器 显示运行。Applet只是Application的特殊形式,要编写 Applet,必须知道如何编写Application。【例1.2】 显示字符串的Applet应用程序。一. Application和Applet 20
  • 21. Applet 应用程序示例import java.awt.*; import java.applet.Applet; public class HelloApplet extends Applet { public void paint(Graphics g) { g.setColor(Color.red); g.drawString("Hello!",20,20); } }21
  • 22. Applet 应用程序示例 23. 二. Java虚拟机执行Java程序23
  • 24. Java虚拟机执行应用程序具有以下3个典型特点:1.动态性——Java虚拟机在内存管理等功能方面全部采用动态方式,如动态分配数组的存储空间、动态创建对象、动态连接数据库等,这些动态特性使Java程序适合在网络上运行。2.异常处理——Java虚拟机提供可靠的异常处理机制。3.多线程——Java虚拟机采用多线程方式运行,各线程独立地执行Java代码,并能够协调一致地处理共享数据。二. Java虚拟机执行Java程序24
  • 25. §1.3 JDK一. JDK的安装与设置 二. 编译和运行Java程序 三. 包25
  • 26. 一. JDK的安装与设置1.安装JDK从Sun公司网站http://java.sun.com下载以下两个文件: jdk-6u21-windows-i586.exe jdk-6-doc.zip2.设置环境变量 在Windows XP中设置环境变量 设置环境变量的批命令(略)26
  • 27. 二.编译和运行Java程序1. Java程序运行流程27
  • 28. 二.编译和运行Java程序Java程序的运行必须经过编写、编译、运行三个步骤。 编写是指在Java开发环境中进行程序代码的输入, 最终形成后缀名为.java的Java源文件。 编译是指使用Java编译器对源文件进行错误排查的 过程,编译后将生成后缀名为.class的字节码文 件,这不像C语言那样生成可执行文件。 运行是指使用Java解释器将字节码文件翻译成机器 代码(不同类型的机器,不兼容),执行并显示 结果。28
  • 29. 2. 执行批命令设置环境变量(略) 3. 编译 javac *.java命令 4. 运行Application应用程序 java *命令 二.编译和运行Java程序29
  • 30. 5. 命令行参数 main (String args[])方法的参数args是一个字符串数组,它 接收命令行参数。 命令行参数是指运行时跟在文件名后输入的多个字符串。二.编译和运行Java程序6. 运行Applet应用程序【例1.3】 使用命令行参数作为输入数据。30
  • 31. 【例1.3】使用命令行参数作为输入数据。public class Welcome { public static void main(String args[]) { for (int i=0;i
  • 32. 三.包1.包的概念 为什么引入包? ——为解决字节码文件存放和类命名的问题 一个Java源程序文件(*.java)中可以声明多个类,每个 类编译后均生成一个字节码文件。程序运行时,Java虚拟机默 认在当前文件夹中寻找指定类的字节码文件。当需要访问其他 文件夹中的类时,不仅要指定文件夹路径,还要在程序中指定 包名。32
  • 33. 三.包1. 包的概念 A. 从逻辑概念看,包(package)是类的集合,一个包中包含 多个类;B. 从存储概念看,包是类的组织方式,一个包对应一个文件夹, 一个文件夹中包含多个字节码文件;注:包与类的关系,就像文件夹与文件的关系一样。包中还可 以再有子包,称为包等级,子包对应一个子文件夹。 子包引用格式为“包.子包”C.包是Java提供的一种区别类名字空间的机制,一个包中的 多个类之间不能重名,不同包中的类名则可以相同。33
  • 34. 三.包2. Java API的常用包 API(应用程序接口)定义了许多通用的常量、函数、类、 接口等功能提供给应用程序使用。java.lang 语言包 java.util 实用包 java.awt 抽象窗口工具包 java.applet 实现Applet应用程序 java.text 文本包java.io 输入/输出流包 java.net 网络包 java.sql 提供数据库应用功能的类库 java.swing 扩充和增强图形用户界面功能的类库34
  • 35. 三.包3. 引用包中的类“[ ]”表示可以重复0-1次; “{ }”表示可重复0至多次; “︱”表示或者。包{.子包}.类 | 接口带包名的类或接口的全名格式如下:35
  • 36. 三.包4. 查看Java API5. 查看Java API源程序及包等级6. 导入包java.lang语言包由Java自动导入,可省略包名。 如果要使用其他包中的类,必须用import语句导入。import 包{.子包}.类︱接口︱*import语句必须写在类声明之前。36
  • 37. 三.包7. 声明类所在的包package 包{.子包}指定源程序中的类或接口所在的包或子包,格式如下: 在源程序文件中,package语句只能写一次,且 必须写在程序的第一行,即写在类声明之前。37
  • 38. 三.包创建包并设置classpath环境变量 声明Point类在mypackage包中 引用mypackage包中的Point类 编译、运行【例1.4】 创建及使用包。38
  • 39. 三.包8. 默认包路径当源程序中没有使用package声明类所在的包时, Java默认包的路径是当前文件夹,没有包名。 引用同一包中的其他类时,包名可以省略,import语句也可以省略。39
  • 40. 三.包9. Java源程序结构一个.java的源程序文件可以包括以下几部分: package——声明包,0-1句。 import——导入包,0至多句。 public class 或interface —— 声明公有类或接口,0-1句,文件名与该名相同。 class——声明默认类,0至多句。 Interface——声明接口,0至多句。注意: 声明包的语句只能有一条,并且必须是第一条语句。 声明为public的类或接口只能有一个,且文件名必须与该类名相同。40
  • 41. 三.包10. 包可以压缩成jar文件在实际应用中,通常将一个包、包中类文件、子包及 子包中的类文件压缩成Java的压缩文件(.jar), JDK提供的文件压缩命令是jar.exe,在Classpath环 境变量中需要设置包压缩文件的路径。41
  • 42. §1.4 Eclipse一. Eclipse集成开发环境 二. 创建Java项目并运行 三. 程序调试技术42
  • 43. 一. Eclipse集成开发环境1. 安装Eclipse并启动 2. 界面 3. 代码提示和源代码查看 4. 项目和工作区43
  • 44. 二. 创建Java项目并运行1. 新建Java项目 2. 新建Java类 3. 编辑、编译和运行 4. 重构 5. 切换工作区 6. 访问其他项目中的类和添加JAR包 7. 选择运行中的类和设置命令行参数44
  • 45. 三. 程序调试技术1. 程序错误、发现时刻及错误处理原则 2. 程序运行方式 3. 调试过程45
  • 46. 三. 程序调试技术1. 程序错误、发现时刻及错误处理原则(1)语法错—编译错:违反语法规范的错误。 例如:标识符未声明、表达式中运算符与操作数类型 不匹配、赋值时变量类型与表达式类型不兼容等 编辑器中:以红色的来标记出错行,鼠标移向出错标 记时给出错误信息。 46
  • 47. 三. 程序调试技术1. 程序错误、发现时刻及错误处理原则(2)语义错—运行错:语法正确但存在语言含义错误。 例如:输入数据格式错、除数为0错、变量赋值超出其 范围、数组下标越界等。 Eclipse:一旦发现语义错,将停止程序运行,在 Console视图中给出异常类和出错位置。47
  • 48. 三. 程序调试技术1. 程序错误、发现时刻及错误处理原则(3)逻辑错—程序运行结果不正确的错误。 例如:由于循环条件不正确而没有结果,循环次数不对 等因素导致计算结果不正确等。 注意:部分语义错和逻辑错的错误性质和出错位置很难 确定,运行系统对逻辑错没有识别能力,找到错 误所在位置和出错原因是解决错误的关键所在。48
  • 49. 三. 程序调试技术2. 程序运行方式(1)正常运行: Run→Run(2)单步运行:逐条执行语句的程序运行方式。 Step Into: 跟踪进入函数内部,可对函数进行单步调试。 Step Over: 将函数调用作为一条语句,一次执行完,不会跟踪 进入函数内部。 Step Return:从函数体中返回函数调用语句,即一次执行完函 数体余下的语句序列,并返回到函数调用语句。 49
  • 50. 三. 程序调试技术2. 程序运行方式(3)分段运行:一次执行若干条语句。 Run to Line:运行至光标所在行。 Resume: 运行至下一个断点。 将程序中的某一行语句设置为断点,当程序运行至断 点时自动暂停,设置多个断点,把整个程序分成若干段。 50
  • 51. 三. 程序调试技术3. 调试过程(1)设置断点 (2)调试界面 (3)单步或分段运行 (4)查看变量的当前值51