scjp培训第一章Java编程语言起步

上传人:飞*** 文档编号:5509259 上传时间:2017-09-06 格式:DOC 页数:12 大小:353KB
返回 下载 相关 举报
scjp培训第一章Java编程语言起步_第1页
第1页 / 共12页
scjp培训第一章Java编程语言起步_第2页
第2页 / 共12页
scjp培训第一章Java编程语言起步_第3页
第3页 / 共12页
scjp培训第一章Java编程语言起步_第4页
第4页 / 共12页
scjp培训第一章Java编程语言起步_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《scjp培训第一章Java编程语言起步》由会员分享,可在线阅读,更多相关《scjp培训第一章Java编程语言起步(12页珍藏版)》请在金锄头文库上搜索。

1、第一章 起 步本模块对 Java 编程语言做了一般性描述,包括 Java 虚拟机、垃圾收集和安全性等。第一节 相关问题讨论下列问题与本模块相关- Java 编程语言是一种完整的语言吗?它是不是仅用于编写 Web 程序 ?- 你为什么需要另一种编程语言 ?- Java 平台是如何在其它语言平台上提高性能的 ?第二节 目 标完成本模块的学习后,你应该能够:- 描述 Java 编程语言的主要特性- 描述 Java 虚拟机的主要功能- 描述垃圾收集是如何进行的- 列举由处理代码安全性的 Java 平台所执行的三大任务- 定义 Class,Package,Applets 和 Applications-

2、编写、编译并运行简单 Java 应用程序- 利用 Java 技术应用程序编程界面(API)的在线文档来标识 Java. lang 包的方法。参考资料辅助资源下列参考资料可为本模块所讨论的问题提供更详细的补充- Lindholm and Yellin. 1997. The Java Virtual Machine Specification. Addison-Wesley. - Yellin, Frank. Low-Level Security in Java, white paper. Online. Available:http:/ 第三节 什么是 Java 编程语言 ?什么是 Java 编

3、程语言Java 是:- 一种编程语言- 一种开发环境- 一种应用环境- 一种部署环境- 句法与 C+相似,语义与 Small Talk 相似- 用来开发 applets,又用来开发 applicationsJava 是:- 一种编程语言- 一种开发环境- 一种应用环境- 一种部署环境Java 编程语言的句法与 C+的句法相似,语义则与 Small Talk TM 的语义相似。Java 编程语言可被用来创建任何常规编程语言所能创建的应用程序。在 World Wide Web(WWW)和能够运行称为 applets 程序的浏览器的有关介绍中,人们经常提及 Java 编程语言。 Applets 是一

4、种贮存于 WWW 服务器的用 Java 编程语言编写的程序,它通常由浏览器下载到客户系统中,并通过浏览器运行。Applets 通常较小,以减少下载时间,它由超文本标识语言(HTML )的 Web 页来调用。Java applications 是一种独立的程序,它不需要任何 Web 浏览器来执行。它们是一种典型的通用程序;可运行于任何具备 Java 运行环境的设备中。1.3.1 Java 编程语言的主要目标Java 编程语言的主要目标提供一种解释环境为- 提高开发速度- 代码可移植性- 使用户能运行不止一个活动线程- 当程序运行时,能动态支持程序改变提供更好的安全性设计 Java 编程语言的主要

5、目标是提供一种易于编程的语言,从而 消除其它语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。 利用面向对象的概念使程序真正地成为可视化程序 为使代码尽可能清晰合理、简明流畅提供了一种方法Java 编程语言的主要目标设计 Java 编程语言的主要目标是提供一种易于编程的语言- 消除其它语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。- 利用面向对象的概念使程序真正地成为可视化程序- 为使代码尽可能清晰合理、简明流畅提供了一种方法Java 编程语言的主要目标(续)- 为获得如下两点益处提供一种解释环境 提高开发速度消除编译链接装载测试周期。 代码可移植性使操作系统能为运行环境做系统级调用-

6、 为运行不止一个活动线程的程序提供了一种方式- 通过允许下载代码模块,从而当程序运行时也能动态支持程序改变。- 为那些保证安全性而装载的代码模块提供了一种检查方法。Java 编程语言的主要目标下列特性使这些目标付诸实现:- Java 虚拟机( JVM)- 垃圾收集- 代码安全性Java 编程语言的主要目标(续)精心开发的 Java 技术体系结构为上述目标的实现提供了保证。Java 的如下特性使这些目标得以实现- Java 虚拟机- 垃圾收集- 代码安全性1.3.2 Java 虚拟机Java 虚拟机- 提供硬件平台规范- 解读独立于平台的已编译的字节码- 可当作软件或硬件来实现- 可在 Java

7、 技术开发工具或 Web 浏览器上实现Java 虚拟机规范为 Java 虚拟机( JVM)作了如下定义:在真实机器中用软件模拟实现的一种想象机器。Java 虚拟机代码被存储在 .class 文件中;每个文件都包含最多一个 public 类。Java 虚拟机规范为不同的硬件平台提供了一种编译 Java 技术代码的规范,该规范使 Java 软件独立于平台,因为编译是针对作为虚拟机的“一般机器”而做,这个“一般机器”可用软件模拟并运行于各种现存的计算机系统,也可用硬件来实现。Java 虚拟机JVM 为下列各项做出了定义- 指令集(中央处理器CPU )- 注册集- 类文件格式- 栈- 垃圾收集堆- 存

8、储区Java 虚拟机(续)编译器在获取 Java 应用程序的源代码后,将其生成字节码,它是为 JVM 生成的一种机器码指令。每个 Java 解释器,不管它是 Java 技术开发工具,还是可运行 applets 的 Web 浏览器,都可执行 JVM。 JVM 为下列各项做出了定义- 指令集(相当于中央处理器CPU )- 注册集- 类文件格式- 栈- 垃圾收集堆- 存储区Java 虚拟机- 由保持适当类型约束的字节码形成代码- 大部分类型检查在编译代码时完成- 每个由 SUN TM 批准的 JVM 必须能够运行任何从属类文件Java 虚拟机(续)JVM 的代码格式由紧缩有效的字节码构成。由 JVM

9、 字节码编写的程序必须保持适当的类型约束。大部分类型检查是在编译时完成。任何从属的 Java 技术解释器必须能够运行任何含有类文件的程序,这些类文件应符合 Java 虚拟机规范中所指定的类文件格式。1.3.3 垃圾收集许多编程语言都允许在程序运行时动态分配存储器,分配存储器的过程由于语言句法不同而有所变化,但总是要将指针返回到存储区的起始位置当分配存储器不再需要时(存储器指针已溢出范围),程序或运行环境应取消分配存储器。在 C,C+ 或其它语言中,程序员负责取消分配存储器。有时,这是一件很困难的事情。因为你并不总是事先知道存储器应在何时被释放。当在系统中没有能够被分配的存储器时,可导致程序瘫痪

10、,这种程序被称作具有存储器漏洞。Java 编程语言解除了程序员取消分配存储器的责任,它可提供一种系统级线程以跟踪每一存储器的分配情况。在 Java 虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器。垃圾收集在 Java 技术程序的生命周期中自动进行,它解除了取消分配存储器的要求,并避免了存储器漏洞。然而,垃圾收集可在 JVM 实现的周期中,产生意想不到的变化。垃圾收集- 不再需要的分配存储器应取消分配- 在其它语言中,取消分配是程序员的责任- Java 编程语言提供了一种系统级线程以跟踪存储区分配- 垃圾收集- 可检查和释放不再需要的存储器- 可自动完成上述工作- 可在 JVM 实

11、现周期中,产生意想不到的变化1.3.4 代码的安全性概述下图显示了 Java 技术的运行环境及其加强代码安全性的方法。Java 源程序文件通过 “编译”,在你的感觉中,就好象是将它们从程序员编写的文本文件格式转换成了一组字节码。字节码被存储在 .class 文件中。构成 Java 软件程序的字节码在运行时被加载、校验并在解释器中运行。当运行 applets 时,字节码可被下载,然后由建于浏览器中的 JVM 进行解释。解释器具备两种功能,一是执行字节码,二是对底层硬件做适当调用。在一些使用 Java 技术的运行环境中,部分校验过的字节码被编译成原始机器码并直接运行于硬件平台。这就使 Java 软

12、件代码能够以 C 或 C+接近的速度运行,只是在加载时, 因为要编译成原始机器码而略有延迟。注意SUN MicrosystemsTM通过采用新的技术,使 Java 虚拟机的性能已经有了进一步的提高。这种新型虚拟机被称为 HotSpotTM虚拟机,它具备了使 Java 编程语言能象编译 C+一样快速运行的潜力。HotSpot 虚拟机对操作系统具有本地多线程支持能力,而不是虚拟多线程。因而,HotSpot 虚拟机可保证对一个应用程序来说,并不一定有代码才能使用这一能力。HotSpot 技术解决了性能与移植性之间的难题。代码安全性(续)Java 运行环境执行三大任务- 加载代码- 校验代码- 执行代

13、码 Java 运行环境一个 Java 技术的运行环境可运行为 JVM 编译的代码并执行如下三大任务:- 加载代码由类加载器执行- 校验代码由字节码校验器执行- 执行代码由运行时的解释器执行类加载器类加载器为程序的执行加载所需要的全部类。类加载器将局部文件系统的类名空间与来自网络源的类名空间相分离,以增加安全性。由于局部类总是首先加载,因而可限制任何“特洛依木马”的应用。当全部类被加载后,可执行文件的存储器格式被确定。这时,特定的存储器地址被分配给符号引用并创建检索表格。由于存储器格式在运行时出现,因而 Java 技术解释器增加了保护以防止对限制代码区的非法进入。代码安全性(续)字节码校验器Ja

14、va 软件代码在实际运行之前要经过几次测试。JVM 将代码输入一个字节码校验器以测试代码段格式并进行规则检查检查伪造指针、违反对象访问权限或试图改变对象类型的非法代码。注意-所有源于网络的类文件都要经过字节码校验器代码安全性(续)校验过程字节码校验器对程序代码进行四遍校验,这可以保证代码符合 JVM 规范并且不破坏系统的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证:- 类符合 JVM 规范的类文件格式- 无访问限制违例- 代码未引起操作数栈上溢或下溢- 所有操作代码的参数类型将总是正确的- 无非法数据转换发生,如将整数转换为对象引用- 对象域访问是合法的第四节 一个基本

15、的 Java 应用程序象其它编程语言一样,Java 编程语言也被用来创建应用程序。一个共同的小应用程序范例是在屏幕上显示字串“Hello World!”。下列代码给出了这个 Java 应用程序。字节码校验可保证- 代码符合 JVM 规范- 代码不破坏系统完整性- 代码不会引起操作数栈上溢或下溢- 所有操作代码的参数类型的准确性- 无非法数据转换(整数到指针的转换)1.4.1 HelloWorldApp 1./ 2./ Sample HelloWorld application 3./ 4.public class HelloWorldApp 5.public static void main

16、(String args) 6.System.out.println (Hello World!); 7. 8.以上程序行是在你的屏幕上打印“Hello World!”所需的最少组件。1.4.2 描述 HelloWorldApp第 1-3 行程序中的 1-3 行是注释行1 /2 / Sample HelloWorld application3 /第 4 行第 4 行声明类名为 HelloWorldApp。类名(Classname)是在源文件中指明的,它可在与源代码相同的目录上创建一个 classnameclass 文件。在本例题中,编译器创建了一个称为 HelloWorldApp.class 的文件, 它包含了公共类 HelloWorldApp 的编译代码。4 p

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号