• 1. 第一章构建Java编程环境
  • 2. 目标1、构建Java编辑、编译、运行环境; 2、了解Java编译、运行机制以及相关工具包和获取开发帮助; 3、开发最基本的Java Application和Java Applet。2
  • 3. 1.1 Java语言的历史1990 年Sun 公司的 James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器。 1993 年交互式电视和 PDA 市场开始滑坡,而 Internet 正处于增长时期,因此Sun 公司将目标市场转向 Internet 应用程序。 1994年将Oak语言更名为Java。 1995年Sun 公司的 HotJava 浏览器问世。3
  • 4. 1.2 基础知识Java语言简介 JDK Java常用工具 Java Application和Applet Java API文档4
  • 5. 1.2.1 JAVA语言简介Java 完全面向对象的编程语言。 Java 可用来生成两类程序:应用程序、 小应用程序( Applet ) 。 Java 既是一种解释执行的语言,也是一种编译执行的语言。5
  • 6. 1.2.2 Java开发工具包(1)JDK是Java语言的基本工具包,它是SUN公司免费提供的开发、运行Java程序的基本软件。 JDK为编程人员提供了Java基础类库(JFC),JFC包含很多包,每个包中都有若干个具有特定功能和相互关系的类和接口 java.lang包:Java基本语言包,包含了运行Java程序必不可少的系统类,每个Java程序运行时,系统都会自动地引入java.lang包。6
  • 7. Java开发工具包(2)java.io包:Jav语言的标准输入/输出包 java.util包:Java语言的一些低级实用工具,如处理时间的Date类等 java.awt包:Java语言图形工具包 java.applet包:Java语言小应用程序包 java.net包:Java语言网络处理包 等等7
  • 8. Java开发工具包(3)JDK是有助于程序员开发Java 程序的 Java 开发工具包包括: 类库 编译器 调试器 Java 运行时环境( JRE )8
  • 9. 1.2.3 JDK 提供的常用工具 javac 是用来编译源代码的命令。 java 是用于执行类文件的命令,而类文件将在 Java 虚拟机中运行类。 appletviewer 命令允许在万维网浏览器的环境之外运行 Applet。9
  • 10. Java 程序的运行环境编译型源程序字节码程序Java源程序可执行程序EXE裸机操作系统解释器编译 连接编译执行解释 执行.java.classJava虚拟机Java是解释执行的高级编程语言10
  • 11. Java虚拟机 (1)Java虚拟机是一种利用软件方法实现的抽象化的计算机,基于下层的操作系统和硬件平台,可以在上面执行Java的字节码程序。 Java虚拟机将在内部创建一个运行时系统,帮助以下列方式执行代码: 加载 .class 文件 管理内存 执行垃圾收集11
  • 12. Java虚拟机 (2)由于硬件平台不一致,因此Java虚拟机使用了堆栈帧的概念,用来存放下列信息: 表示方法状态的帧 字节码操作数 传递给方法的参数 局部变量12
  • 13. Java 运行时环境编译时.java(源代码).class(字节码)运行时类加载器字节码校验器解释器JIT代码 生成器硬件网络13
  • 14. 1.2.4 Java Application程序基本结构import语句class { public static void main(String[ ] args) { } }主类名称方法体14
  • 15. Java Application编辑、编译、运行//这是名称为“HelloWorld.java”的简单程序 import java.io.*; class HelloWorld { public static void main(String args[ ]) { System.out.println(“欢迎访问 Java 世界!“); } }单行注释导入 必要的包定义类Main函数在控制台上输出15
  • 16. 在记事本编辑Java程序单击 开始依次选择 程序->附件 ->记事本//这是名称为“HelloWorld.java”的简单程序 import java.io.*; class HelloWorld { public static void main(String args[ ]) { System.out.println(“欢迎访问 Java 世界!“); } }16
  • 17. 编译和运行单击 开始依次选择 程序->附件 ->命令提示符进入程序所 保存的目录输入命令编译 HelloWorld输入命令执行 HelloWorld输出 结果17
  • 18. 1.2.5 Java Applet程序基本结构import语句class extends { }类称方法Applet18
  • 19. Java Applet编辑、编译、运行对于Java Applet而言,其编辑、编译和运行则略有不同 编辑:Applet除了编写小程序外,还需要编写对应的HTML页面,因为Applet不像Application,支持字符界面处理,Applet是基于图形界面的,它需要HTML容器来存放Applet应用程序 编译:Applet的编译只编译Applet源代码,不需要编译HTML页面代码,Applet的编译和Application的编译相同,都是使用Java编译工具(javac)进行编译。 19
  • 20. Java Applet编辑、编译、运行运行:运行Applet,可以使用小程序查看器appletviewer ;也可以利用浏览器直接点击WelcometoJavaApplet.html来运行Applet。 具体分析见书本上的实例20
  • 21. 1.2.6 Java API 文档(1)加载 API 文档的步骤: 打开 Internet Explorer。 键入下列 URL http://java.sun.com/j2se/1.4.2/docs/api/index.html 通过单击相关主题,可以浏览网页。Java API 文档是一种非常有用的文档,描述许多 java 的内置功能,包含类、包、接口等的帮助。 21
  • 22. Java API 文档(2)选择 包选择包中的 接口或类可查看相应帮助22
  • 23. 1.3 案例1分析本案例所使用的软件: j2sdk-1_4_2_03-windows-i586.exe JCreatorpro250 上述两种软件可通过网络获取,也可通过本书的配套光盘获取 关于安装JDK和Jcreator的内容书上已经介绍得比较详细,请参看书上的描述23
  • 24. 1.4 扩展知识Java语言的基本特点 基本数据类型 控制语句 数组24
  • 25. 1.4.1 Java的基本特点(1)简单 面向对象 分布式 Java的风格类似于C++,因而对C++程序员而言非常容易掌握Java编程技术; Java摒弃了C++中容易引发程序错误的地方,如指针操作和内存管理; 在 Java 中任何东西都是对象,因此,重点集中在数据以及应用程序中的数据操作方法。 Java提供了包容广泛的例程库,可处理像HTTP和FTP这样的TCP/IP协议。Java应用程序可通过一个特定的URL来打开并访问对象,就像访问本地文件系统那样简单。 25
  • 26. Java语言提供的安全 编译器提供的安全 字节码校验器 类加载器Java的基本特点(2)健壮性 安全 体系结构中立 可移植性 Java在编译和运行程序时都要对可能出现的问题进行检查 它提供自动垃圾收集来进行内存管理 面向对象的异常处理机制 Java 程序被编译成一种与体系结构无关的字节代码 只要安装了Java运行时系统Java程序可以在任意的处理器上运行源代码级 目标代码级26
  • 27. Java的基本特点(3)解释执行 高性能 多线程 动态编译器 javac 将处理.java源文件生成类文件 类文件可通过名称为 java 的加载实用程序解释执行,将Java 字节码转换为机器可执行代码。 通过JIT编译器首先将字节码编译成固有代码,将结果缓存下来,然后在需要时调用它们。 Java语言内置支持多线程的功能 Java 类库提供了 Thread 类 Java自身的设计使它适合于一个不断发展的环境。在Java类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。27
  • 28. 1.4.2 基本数据类型 Java 共有八种基本数据类型: 四种整数类型(byte、short、int、long) 两种浮点数类型(float、double) 一种字符类型(char) 一种布尔类型(boolean)28
  • 29. 整型数据类型类型缺省值长度数的范围byte08位-128 ~ 127 short016位-32,768 ~ 32,767 int032位-2,147,483,648 ~ 2,147,483,647 long064位-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 29
  • 30. 浮点型数据类型类型缺省值长度数的范围float0.032位3.4E-038~3.4E+038 double0.064位1.7E-308~1.7E+308 30
  • 31. 字符数据类型类型缺省值长度数的范围char'\u0000' 16位\u0000 ~ \uFFFF 31
  • 32. 布尔数据类型类型缺省值长度数的范围booleanfalse 1位false、true32
  • 33. 缺省初始值Java 保证了在任何代码使用该内存之前,已至少将内存初始化为可预知的缺省值 类型缺省值类型缺省值byte(byte)0char'\u0000 ' short(short)0float0.0Fint0double0.0Dlong0L对象引用nullbooleanfalse33
  • 34. 标识符在Java中标识符的命名必须符合以下规则: 标识符必须以字母或下划线或 $ 符号开始。其余字符可以是字母、数字、$ 符号和下划线。 标识符只能包含两个特殊字符,即下划线 (_) 和美元符号 ($)。不允许有任何其他特殊字符。 标识符不能包含空格。表示指定给变量、方法和类的名称,以便编译器可唯一标识它们。34
  • 35. 变量变量是在程序执行期间可根据需要经常变化的值 变量具有 3 个特性: 名称 : 标识符 初始值 :为其赋值或者是保留缺省值 作用域 : 在不同程序块中的可用性及生命周期35
  • 36. 算术运算符运算符含义示例求值+加c = a + b -减c = a - b *乘c = a * b /除c = a / b %取模c = a % b ++递增a++--递减b--+=相加并赋值c += a c = c + a -=相乘并赋值c *= a c = c * a /=相除并赋值c /= a c = c / a %=取模并赋值c %= a c = c % a -取负数c= - a36
  • 37. 关系运算符关系运算符用于测试两个操作数之间的关系。 关系表达式将返回一个布尔结果。运算符含义示例==等于a==b!=不等于a!=b>大于a>b<小于a=大于或等于a>=b<=小于或等于a<=b37
  • 38. 逻辑运算符逻辑运算符与布尔操作数一起使用运算符含义示例&逻辑与A & B|逻辑或A | B^逻辑异或A ^ B!逻辑反 ! A||短路或A || B&&短路与A && B38
  • 39. 位运算符用于 int、short、long、byte 和 char 数据类型运算符含义示例~ 按位非(NOT) b = ~a & 按位与(AND) c = a & b | 按位或(OR) c = a | b ^ 按位异或(XOR) c = a ^ b >> 右移 b = a >> 2 >>> 右移,左边空出的位以0填充 b = a >>> 2 << 左移 b = a << 1 39
  • 40. 赋值运算符一次可以为多个变量赋值,如: int a = 20000; int p,q,r,s; p = q = r = s = a;赋值运算符 (=) 用于为变量赋值40
  • 41. 三元运算符 (?:)三元运算符 (? :) 可以替代 if-else 结构true false条件 ? 表达式 1 : 表达式 2 class TernaryOp { public static void main(String args[]) { int salary,daysPresent = 30; salary = daysPresent == 20 ? 2000 : 3000; System.out.println("您本月薪资为 $"+salary); } }41
  • 42. 1.4.3 控制结构选择 if-else switch 循环 while do-while forJava 支持下列控制结构:选择、循环、跳转跳转 break continue 42
  • 43. if-else 选择语句if-else 结构的语法为: if (条件) 语句1; else 语句2; if (条件) { 语句组; } else { 语句组; }if和else块中只有一条语句 if和else块中有多条语句 43
  • 44. switch 选择语句switch 结构的语法为: switch(表达式){ case '常量值 1': 语句(组); break; case '常量值 2': 语句(组); break; case '常量值 N': 语句(组); break; default: 语句(组); }表达式必须为byte,short,int或char类型 常量值必须是与表达式类型兼容的特定的一个常量 不允许有重复的case值 44
  • 45. 循环while 循环 while(条件) { 语句组; } do-while循环 do { 语句组; } while(条件); for 循环 for(变量初始化; 条件; 递增或递减变量的值) {语句组; } 45
  • 46. break 和 continue 语句break 语句在循环中用于立即从当前循环终止控制。 遇到 break 语句时,将跳出当前循环。 continue 语句则是从其调用处跳至循环的开始处。 continue 语句之后的语句将不再执行。46
  • 47. 1.4.4 数组属于复杂数据类型 由类型相同的元素组成的有顺序的数据集合 数组是固定的不能扩展 可以存储基本数据类型或对象 通过数组名和下标可以访问各元素47
  • 48. 创建数组通用的一维数组的声明格式是: type var-name[]; 举例: int array_int[ ]; String[ ] str; 利用new 来为数组型变量分配内存空间 array_int=new int[10]; str=new String[10]; 两步可以合并,如: int String[ ] str=new String[10];48
  • 49. 1.5 本章小结Java 是一种面向对象的编程语言,主要用于 Internet 应用程序。 Java 可用来生成两类程序:应用程序、 小应用程序( Applet ) 。 Java 既是一种解释执行的语言,也是一种编译执行的语言。49
  • 50. 本章小结(2)Java 的特点包括: 简单 面向对象 分布式 健壮性 安全 体系结构中立 可移植性 解释执行 高性能 多线程 动态50
  • 51. 本章小结(3)Java 虚拟机是 Java 编程语言的核心。 Java 运行时环境 (JRE) 包含一方面与硬件交互、另一方面又与程序交互的 JVM。 Java 开发工具包有助于开发 Java 程序。 JDK 提供多种工具,这些工具位于 JDK 的 bin 目录下,具体如下: javac java appletviewer51
  • 52. 本章小结(4)Java有8种基本数据类型 Java控制结构包括选择、循环、跳转 数组是一种复杂数据类型,二维数组是一维数组的数组52