JSP实用简明教程(课件) 教学课件 ppt 作者 ch02

上传人:E**** 文档编号:89347869 上传时间:2019-05-23 格式:PPT 页数:70 大小:202.50KB
返回 下载 相关 举报
JSP实用简明教程(课件) 教学课件 ppt 作者 ch02_第1页
第1页 / 共70页
JSP实用简明教程(课件) 教学课件 ppt 作者 ch02_第2页
第2页 / 共70页
JSP实用简明教程(课件) 教学课件 ppt 作者 ch02_第3页
第3页 / 共70页
JSP实用简明教程(课件) 教学课件 ppt 作者 ch02_第4页
第4页 / 共70页
JSP实用简明教程(课件) 教学课件 ppt 作者 ch02_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《JSP实用简明教程(课件) 教学课件 ppt 作者 ch02》由会员分享,可在线阅读,更多相关《JSP实用简明教程(课件) 教学课件 ppt 作者 ch02(70页珍藏版)》请在金锄头文库上搜索。

1、2019年5月23日,1,第2章 JAVA语言基础,教学目标 教学重点 教学过程,2019年5月23日,2,教学目标,熟悉和了解Java语言的特点 熟悉和掌握Java的数据类型、运算符、控制语句 熟悉和掌握Java的类和多线程,2019年5月23日,3,教学重点,Java的数据类型 运算符 Java的控制语句 Java类,2019年5月23日,4,教学过程,Java语言的特点 Java的数据类型 运算符 条件语句 循环语句 分支语句 Java中的强制类型转换 Java类技术基础 Java高级类技术 多线程技术,2019年5月23日,5,2.1 语言特点,简单性 面向对象 分布性 健壮性 体系结

2、构中立 安全性 解释性 可移植性 高性能 多线程 动态性 丰富的类库 类的装载 与C和C+语言的异同,2019年5月23日,6,简单性,结构较小。Java语言通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以编写出适合于各种情况的应用程序。Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾回收,大大简化了程序设计者的内存管理工作。另外,Java也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加了标准类库和线程的支持也只有215KB左右。 用户容易熟悉掌握。Java使用了许多与C和C+同样的语言结构。但是又把C和C+中很少使用的、容易出错的特

3、征去掉了。Java略去了运算符重载、多重继承等模糊的概念;不支持goto语句,代之以提供break和continue语句以及异常处理;不使用主文件,它免去了预处理程序;由于Java是面向对象的,所以C中的结构struct和union也已被删去。,2019年5月23日,7,面向对象,Java是一个面向对象的语言,与C+言不同的是,Java是从基础就设计成面向对象的。Java中的绝大多数成分都是对象,只有简单数、字符和布尔类型是例外。虽然Java看起来设计得很像C+,但是Java移去了C+的许多复杂性。 Java语言不支持类似C语言那样的面向过程的程序设计技术,它的设计集中于对象及其接口,它提供了

4、简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏,而类则提供了对象的原型,通过继承机制,子类可以使用父类所提供的方法,这样就实现了代码的继承及重用。因此,单从面向对象的特性来看,Java类似于SmallTalk,但其它的特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。,2019年5月23日,8,分布性,Java从设计上就支持网络应用,它是分布式语言,Java接口和Java类是以包的形式分组存放。Java语言中专门有一个支持网络的包J,通过这个包中的类,支持各种层次的网络连接。例如,Java包括一个支持HTTP和FTP等基于TCP

5、/IP协议的子库。因此,用户可以通过URL地址在网络上很方便地访问其他远程对象,其访问方式与访问本地文件(local)系统一样简单。Java也以Socket类支持可靠的流(Stream)网络连接,所以可以产生分布式的客户机和服务器,这比原来的客户机/服务器方式进了一步。,2019年5月23日,9,健壮性,Java是一个强类型语言。它具有扩展编译时检查潜在的类型不匹配问题的功能。这使得Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动收集垃圾来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,Java揭示出可能出现

6、但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。另外,Java还实现了真数组,避免了覆盖数据的可能。这个功能特征大大缩短了开发Java应用程序的周期。,2019年5月23日,10,体系结构中立,Java编译程序生成与体系结构无关的字节码,这种字节码适合各种体系结构。这种方法的优点是允许Java应用能在任何系统上运行,只要安装了Java运行系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。目前

7、,Java编写的代码经编译后的之间代码文件可以在Solaris、Windows、UNIX、Linux和MacOS等不同的操作系统上运行。,2019年5月23日,11,安全性,不支持指针。一切对内存的访问都必须通过对象的实例变量来实现。Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。 设置访问权限。为了防止无效字节码程序造成的危害,如删除所有文件、未经用户许可在网上发送本地信息等,Java虚拟机让用户可配置访问权限,如拒绝本地写入、拒绝向其它站点和网络访问等。 语言功能和一些浏览器本身

8、提供的功能相结合。Java运行系统使用字节验证过程来保证装载到网络上的代码不违背任何Java语言限制。当然,没有人能保证Java程序不包含任何形式的恶意代码。Sun公司所能保证的是,Java使得写诈骗软件更加困难。 虚拟机的选择。大多数安全性措施都靠无病毒的Java虚拟机,所以Java虚拟机的取得要慎之又慎。Sun、IBM等公司的Java虚拟机都经过了彻底检查,下载和操作通常是安全的。,2019年5月23日,12,解释性,Java 解释器直接对Java字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单。 Java编译程序把Java源程序译成字节码,而不是通常的汇编码或机器

9、码,这是Java跨平台特点的关键所在。为了实际运行Java程序,还要使用解释程序来执行编译出来的字节码,所以Java的前一阶段是编译,后一阶段是解释。,2019年5月23日,13,可移植性,与平台无关的特性使Java应用程序可以移植到配备了Java解释器和运行环境的任何计算机系统上。同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java系统本身也具有可移植性。,2019年5月23日,14,高性能,Java比C语言写的程序执行起来平均慢20倍。不过这个速度对交互式运行、图形用户界面和基于网络的

10、应用来讲是适当的,因为在这些应用中,常常是有空闲的,等待用户做某些事,或者等待来自网络上的程序或数据,这时Java可以在运行时直接将目标代码翻译成机器指令。 有些情况下性能是很重要的。为了支持这些情况,Jit(Just-in-time)编译程序能在运行时把Java字节码翻译成特定CPU的机器代码。Java字节码格式设计时考虑到这些JIT编译程序的需要,所以生成机器代码的过程相当简单,它能产生较好的代码,其字节码转换到机器码的性能与C或C+的几乎一样。,2019年5月23日,15,多线程,Java程序通过流控制来执行程序流,程序中单个顺序的流控制称为线程,多线程则指的是在单个程序中可以同时运行多

11、个不同的线程执行不同的任务。多线程带来的的好处是比C和C+更键壮,而且同步机制保证了对共享数据的正确操作(即实时控制),通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。 多线程程序设计大大提高了程序执行效率和处理能力。对程序员来说,用C或C+语言编写处理多线程的代码可能是很麻烦的事。Java语言使具有线程的程序设计很容易,Java对线程提供内部语言支持,Java中的Thread类和Runnable接口使程序员很容易开发出多线程的应用程序。,2019年5月23日,16,动态性,Java的设计使它适合于一个不断发

12、展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行,这是C+语言进行面向对象程序设计所无法实现的。 Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。这样,一个在存储器生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定的。这样,对类中的变量和方法进行更新时就不至于影响现存的代码。解释执行字节码时,这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响

13、原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。 如果系统运行Java程序时遇到了不知怎样处理的程序,Java能自动下载所需要的功能程序。,2019年5月23日,17,丰富的类库,语言包。提供的支持包括字符串处理、多线程处理、例外处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。 实用程序包。提供的支持包括哈希表、堆栈、可变数组、时间和日期等。 输入输出包。用统一的“流”模型来实现所有格式的I/O,包括文件系统、网络、输入/出设备等。 抽象图形用户接口包实现了不同平台的计算机的图形用户接口部伯,包括窗口、

14、菜单、滚动条、对话框等,使得Java可以移植到不同平台的机器。 网络包。支持Internet的TCPIP协议,提供了与Internet的接口。它支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。,2019年5月23日,18,类的装载,Class Loader通过将本机类与网络资源类的名称分开来保持安全性,因为调入类时总要经过检查,这样避免了特洛伊木马现象的出现。从网络上下载的类被调进一个与源相关的私有的名字域,当一个私有类访问另一个类时,build-in(本机类)首先被检查,然后检查相关的类。这样就避免了破坏本机类情况的出现。,2019年5月23日,19,与C和C+语言的

15、异同,指针。指针是C、C+中最灵活,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C+中的私有成员,从而破坏安全性,造成系统的崩溃。而Java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针释放某一内存地址等。同时,数组作为类在Java中实现,良好地解决了数组访问越界这种在C、C+中不作检查的错误。 预处理 。C、C+中用宏定义来实现的代码给程序的可读性带来了困难。在Java中,不支持宏,它通过关键字final来声明一个常量,以实现宏定义中广泛使用的常量定义。 g

16、oto 。Java不支持C、C+中的goto语句,而是通过例外处理语句try、Catch、final等来代替C、C+中用goto来处理遇到错误时跳转的情况,使程序更可读且更结构化。,2019年5月23日,20,类型转换。在C、C+中,可以通过指针进行任意的类型转换,常常带来不安全性,而Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。 在C中,程序员通过库函数malloc()和free()来分配和释放内存,C+中则通过运算符new和delete来分配和释放内存。再次释放已释放的内存块或未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在Java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能随程序运行而改变,Java对此自动地进行管理并且进行垃圾收集,有效防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。,2019年5月23日,21,全局变量的定义 。Java程序中,不能在所有类之外

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

当前位置:首页 > 高等教育 > 大学课件

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