Presentation is loading. Please wait.

Presentation is loading. Please wait.

第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档.

Similar presentations


Presentation on theme: "第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档."— Presentation transcript:

1

2 第一章 Java 程序设计技术

3 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档

4 什么是 Java 语言  前身是 1991 年由美国 Sun 公司的 Jame Gosling 、 Bill Joe 等人开发的 Oak 语言  Java 是一种功能强大的程序设计语言,既 是开发环境,又是应用环境,它代表一种 新的计算模式

5 什么是 Java 语言 面向对象的程序设计语言 与机器无关的二进制格式的类文件 Java 虚拟机(用来执行类文件) 完整的软件程序包(跨平台的 API 和库)

6 Java 语言的特点  语法简单,功能强大  类似于 C++ ,去掉了 C++ 中不常用且容易出错的地方  完全的面向对象  分布式与安全性  强调网络特性,内置 TCP/IP 、 HTTP 、 FTP 协议类库  三级代码安全检查机制  与平台无关  一次编写,到处运行

7 Java 语言的特点  解释编译两种运行方式  just-in-time 编译器,简称 JIT 编译器  多线程  动态执行  执行代码是在运行时动态载入的  丰富的 API 文档和类库

8 经典的系统架构  主机架构  集中处理,集中管理,各用户分享使用计算机 资源。这种模式下,可移植性差,扩充系统费 用较大  个人计算机( PC )  本地处理,本地管理,各用户独占系统资源, 管理维护费用直线上升

9 Java 的三层架构  Java 计算模式  结合了上述两种模式的优势,它可用于客户 / 服 务器架构,将公共使用的程序放到应用程序服 务器上,用户使用时从服务器上下载到客户端, 各用户独立使用设备和程序。当程序更新时, 只需在服务器上进行。不必在客户端做任何维 护工作,达到 “ 零管理 ” 的理想目标。

10 Java 语言的目标  创建一种面向对象的语言  提供一种解释环境  这可以缩短系统开发的编译-连接-装载-测 试周期,提高开发速度。  去掉了影响代码健壮性的功能  如指针结构及程序员负责的内存分配与释放。

11 Java 语言的目标  为程序运行多线程提供了方法  允许程序下载代码模块  在程序运行生命期内可以动态修改  检查下载的代码模块,提供了保证安全的 一种手段

12 Java 虚拟机  Java 虚拟机( Java virtual machine , JVM ) 是运行 Java 程序必不可少的机制。  编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行。  JVM 是编译后的 Java 程序和硬件系统之间的接 口,程序员可以把 JVM 看作一个虚拟的处理器。 它不仅解释执行编译后的 Java 指令,而且还进 行安全检查。  JVM 是 Java 程序能在多平台间进行无缝移植的 可靠保证,同时也是 Java 程序的安全检验引擎。

13 Java 虚拟机  JVM 的定义  JVM 是在一台真正的机器上用软件方式实现的 一台假想机  JVM 的具体实现  指令集(等价于 CPU 的指令集)、寄存器组、 类文件格式、栈、垃圾收集堆、内存区  JVM 代码格式为压缩的字节码,效率较高  JVM 的实现叫做 Java 运行时系统或运行时环境 ( Runtime Environment ),简称为运行时

14 Java 虚拟机的性能  Java 解释器经过优化,字节码的执行速度 已有很大提高  在字节码执行之前先经过 JIT 编译器进行编 译,生成针对具体平台的本机执行代码。 执行效率可比解释执行的效率大幅度提高。 并仍不失跨平台的特点

15 Java 虚拟机的性能  Hotspot 技术  是 Sun 公司推出,为根本上解决 Java 程序的效 率问题。它提供对代码的运行时选择。在程序 执行时,对每个字节码指令进行分析,根据它 的执行次数,动态决定它的执行方式

16 垃圾收集  程序员不必亲自释放内存  后台系统级线程,记录每次内存分配的情况, 并统计每个内存指针的引用次数。  垃圾收集自动进行,无需用户释放内存, 消除了内存漏洞

17 代码安全 语言定义 public protected private final 取消指针 自动回收垃圾 bytecode 检查 限定对象的存取权限 系统堆栈溢出 参数类型一致 程序执行系统 WWW 浏览器 限制 Java 小应用程序的不正当使用 Java 源程序 (.java 文件 ) Java 编译器 Java bytecode(.class 文件 ) bytecode 下载器 bytecode 解释器 系统执行平台

18 代码安全  对于 Applet ,因其是从其他机器上通过网络 下载到本机执行的,程序中可能隐藏某些 非法操作,所以在 Applet 运行之前,系统要 对之进行严格的三级代码安全检查,即验 证、分析和跟踪监测。

19 代码安全  JDK 1.0 版本中,安全模型是所谓的 “ 沙箱 ” 模型  JDK 1.1 版本中,使用 “ 签名 Applet ”  Java 2 允许用户自己设定相关的安全级别

20 代码安全  Java 解释器  Java 解释器只能执行为 JVM 编译的代码  Java 解释器有三项主要工作: (1) 下载代码--由类下载器完成 (2) 校验代码--由字节码校验器完成 (3) 运行代码--由运行时解释器完成

21 代码安全  类下载器  从 Internet 网上下载类文件  类下载器把本地文件系统的类名空间和网络源 输入的类名空间区分开来,以增加安全性

22 代码安全  字节码校验器  检查代码的安全性,代码段的格式,并使用规则来 检查非法代码段  主要检查以下几项内容: (1) 类遵从 JVM 的类文件格式。 (2) 不出现访问违例情况。 (3) 代码不会引起运算栈溢出。 (4) 所有运算代码的参数类型总是正确的。 (5) 不会发生非法数据转换,如把整数转换为指针。 (6) 对象域访问是合法的。

23 开发环境  开发环境的安装  安装 JDK  设置环境变量 PATH = C:\Program Files\Java\jdk1.5.0\bin; CLASSPATH =. ; c:\ Program Files\Java\ jdk1.5.0\LIB;c:\Program Files\Java\ jdk1.5.0\demo

24 JDK 目录结构 C:\ Jdk1.5.0 bin lib javac java appletviewer 用户类文件所在目录 c:\java\examples\applications 当前目录 jre demo

25 Java 程序  Java 应用程序( Java Application )  Java 小应用程序( Java Applet )

26 Java 应用程序例 public class HelloWorldApp{ public static void main (String args[ ]) { System.out.println ("Hello World!"); } 编译命令 运行命令运行结果

27 程序的编译和运行  编译 源文件是文本形式的文件,经过编译,生 成二进制格式的字节码类文件  Java 编译器 : “ javac ” $ javac HelloWorldApp.java

28 运行  Java 的解释器是 “ java.exe ”  java 和 javac 一般放在 $JAVA_HOME/bin 目 录中,系统配置文件的 PATH 变量中应包含 该目录 $ java HelloWorldApp

29 常见错误  编译时错误  javac: Command not found 包含 javac 编译器的路径变量设置不正确  HelloWorldApp.java:3: Method printl (java.lang.String) not found in class java.io.PrintStream. System.out.printl (“Hello World!”); ^ 方法名 printl 不正确  HelloWorldApp.java:1: Public class HelloWorldapp must be defined in a file called "HelloWorldapp.java". public class HelloWorldapp{ ^ 文件定义的公有类 HelloWorldapp 的名字和文件名不匹配

30 常见错误  运行时错误  Can't find class HelloWorldApp 系统找不到名为 HelloWorldApp 的类文件  In class HelloWorldApp: main must be public and static main() 方法的左侧缺少 static 或 public  文件中含有的类个数错误 在一个源文件中只能定义一个公有类

31 常见错误  层次错误  解释:一个.java 源文件可以含有三个 “ 顶层 ” 元 素,这三个元素必须依次是: (1) 一个包说明,即 package 语句,可选 (2) 任意多个引入语句,即 import 语句 (3) 类和接口说明

32 常见错误  整体来看, Java 程序的结构如下:  package 语句:零个或 1 个,必须放在文件开始;  import 语句:零个或多个,必须放在所有类定 义之前;  公有的( public )类定义:零个或一个;  类定义:零个或多个;  接口定义:零个或多个; 源文件命名时,若文件中含有 public 类,源文件 必须与该类名字一致,注意区分大小写。

33 常见错误  正确的语句序列:  错误的语句顺序: package Transportation; import java.awt.Graphics; import java.applet.Applet; import java.awt.Graphics; import java.applet.Applet; package Transportation; 该例中在包说 明语句之前含 有其他语句

34 常见错误  错误的语句顺序: package Transportation; package House; import java.applet.Applet; 该例中含有两 个包说明语句

35 使用 Java API 文档  从 SUN 公司的网站上下载文档文件,假定 文件存放在 jdk 目录下,则在浏览器地址框 中输入 jdk\docs\index.html 即可以查看 JDK 文档。

36


Download ppt "第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档."

Similar presentations


Ads by Google