JavaPPT_Java程序设计_刘宝林第1讲_Java概述_第1页
JavaPPT_Java程序设计_刘宝林第1讲_Java概述_第2页
JavaPPT_Java程序设计_刘宝林第1讲_Java概述_第3页
JavaPPT_Java程序设计_刘宝林第1讲_Java概述_第4页
JavaPPT_Java程序设计_刘宝林第1讲_Java概述_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计,2,教学目的,Java语言语言基础:数据类型,控制语句Java的面向对象程序设计Applet与Java网络功能程序设计方法面向对象编程技术的基本知识培养实际开发能力,3,课程信息,本课程以Java语言为素材,讲授面向对象程序设计的方法与思路。课程主要包括以下内容:面向对象程序设计的基本概念与方法。Java语言基础知识。Java语言面向对象程序设计基础。图形用户界面设计。Java编程中的几个专题(异常处理、输入输出、多线程、Applet、多媒体、网络编程等)。,4,教学参考书,Java程序设计(第2版)刘宝林,高等教育出版社出版,2011.6国家“十一五”规划教材Java程序设计与案例刘宝林,高等教育出版社出版,2004.11国家“十五”规划教材Java程序设计与案例习题解答与实验指导刘宝林,高等教育出版社出版,2005.6国家“十五”规划教材配套参考书网络教学资源软件、电子教案、英文电子书、Java学习辅助资料等课程资源。,Java语言概述,6,主要内容,Java的历史与发展Java语言概貌Java开发工具Java的程序类型Applet与application,7,程序设计语言发展的历程,程序设计语言发展的历程机器语言汇编语言高级语言面向对象的语言,8,Java的历史,前身:Oak(JamesGosling1991)Java大事记91年,Sun公司开始Green工程93年,WWW席卷全球94年,开始定位于Internet,HotJava浏览器95.1,Java命名HotJava,第一个支持Java的浏览器Netscape2.0,9,Java的发展,1995.5.23Java诞生(Java1.0.2API)1997.2.18JDK1.1(Java1.1API)VJ+6.0、JBuilder.支持1998.12JDK1.2(Java2SDKv1.2StandardEdition)网址(查询新动向),10,Java语言的特点,Simple(易学,自动内存管理,简化重载,去掉指针及C+中一些不是绝对必要的功能)Java语言与C+语言的风格极为相似,但却比C+语言简单得多,去掉了C+语言中容易引发程序错误的地方。object-oriented(纯面向对象语言,程序代码以类的形式组织,由类来定义对象的各种状态和行为)具备面向对象的四大特点:抽象、封装、继承和多态。Distributed(丰富的网络编程功能-轻松处理TCP/IP,通过URL访问远地资源;字节码可来自网络),11,Java语言的特点,Interpreted(Java是解释型的,但Java通过预先将源代码编译为接近于机器指令的字节码,有效地克服了传统解释型语言的性能瓶颈,同时又保持了解释型语言的可移植性。Java解释器能直接在任何机器上执行Java字节码)Robust(静、动态检查,排除出现错误的条件,异常处理,取消指针,内存保护)Java语言系统仔细检查对内存的每次访问,确认它是合法的,不致引起任何问题,如果出现某种意料之外的事,系统不会崩溃,而是把该例外抛弃。取消指针,从而杜绝了对内存的非法访问。,12,Java语言的特点,Secure(适用于网络/分布式运算环境,确保建立无病毒且不会被侵入的系统。内存分配及布局由Java运行系统决定,字节码加密传输,客户端校验)Java程序分application应用程序和applet小程序两种,application在本地执行,而小程序可在网上发布,但需要浏览器执行,为保证从远端下载的小程序不会对用户造成危害,Java引入了砂盒(sandbox)安全模型,限制小程序访问本地资源。architecture-neutral(让Java应用程序能够在网络上任何地方执行,字节代码-平台无关性、完全统一的语言版本-实现无关性,访问底层操作系统功能的扩展类库不依赖于具体系统),13,Java语言的特点,Java语言源程序被编译成一种高层次的与机器无关的以及结构中立的字节码语言,该格式语言在Java虚拟机上运行,只要有Java语言运行系统的机器都能执行这种中间代码。Portable(源于7,而且Java本身环境的可移植)Java程序可在配备了Java解释器和运行环境的任何机器上运行,这成为Java软件便于移植的良好基础。high-performance(字节码-目标代码)Java开发者设计了justintime编译器(也叫代码生成器),这种编译器可以在运行时把Java的字节码翻译成特定的机器代码,提高了其高性能。,14,Java语言的特点,multi-threaded(支持多任务。在语言级嵌入了对并发控制的功能-多线程控制,大大简化了多线程应用程序的开发)使应用程序可以并行执行,在一个程序里可同时执行多个小任务,同步机制保证了对共享数据的正确操作。Dynamic(可动态增加和修改类库内容,面向对象设计的延伸)Java的基本组成单元是类,而Java的类又是运行时动态装载的。可以在分布环境中动态地维护应用程序和类库的一致性。更能适应时刻变化的环境,Java不会因程序库的更新,而必须重新编译程序。,15,Java语言的特点,Java语言的设计使它适合于一个不断发展的环境,在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行,它同时允许程序动态地装入运行过程中所需要的类。,16,Java语言与CC+语言的比较,全局变量在Java语言程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量,这样在Java语言对全局变量进行了更好的封装。而在CC+语言中依赖于不加封装的全局变量常常造成系统的崩溃。gotoJava语言不支持CC+语言中的goto语句,而是通过例外处理语句try、catch、finally等来代替CC+语言中用goto来处理遇到错误时的跳转情况,使程序更可读且更结构化。,17,Java语言与CC+语言的比较,指针指针是CC+语言中最灵活,也是最容易产生错误的数据类型。Java语言对指针进行了完全的控制,程序员不能直接进行任何指针操作。同时,数组作为类在Java语言中实现,它很好地解决了数组访问越界这一CC+语言中不作检查的错误。内存管理在C语言中,程序员通过库函数malloc()和free()来分配和释放内存,C+语言中则通过运算符new和delete来分配和释放内存。而在Java语言所有的数据,18,Java语言与CC+语言的比较,结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能随程序的运行而改变,Java运行系统对此自动进行管理并且进行垃圾收集,有效地防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。数据类型的支持在CC+语言中,对于不同的平台,编译器对于简单数据类型如int,float等分别分配不同长度的字节数,但在Java语言中,对于这些数据类型总是分配固定长度的位数,从而保证了Java语言的平台无关性。,19,Java语言与CC+语言的比较,类型转换在CC+语言中,可以通过指针进行任意的类型转换,常常带来不安全性,而Java语言中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。结构与联合CC+语言中的结构与联合中的所有成员均为公有,这就带来了安全性问题。Java语言中不包含结构与联合,所有的内容都封装在类中。,20,Java语言与CC+语言的比较,宏定义CC+语言中用宏定义来实现的代码给程序的可读性带来了困难。在Java语言中不支持宏,它通过关键字final来声明一个常量,以实现宏定义中广泛使用的常量定义。头文件CC+语言中用头文件来声明全局变量、库函数等,在大的系统中,维护这些头文件很困难。而Java不支持头文件,Java语言中用import语句与其他类进行通信,以便使用它们的方法。,21,Java语言的特点,缺点解释型语言,运行速度慢相对于编译语言而言。语言标准有待进一步统一相对于其他发展了几十年的高级语言,还是一种新生事物,语言标准还有待统一。缺乏稳定的编程环境比如像已有的开发工具VJ+,JBuilder并不能100%地符合java的标准,这样一来,就使得缺乏一个稳定的编程环境,因此,使用某一种开发工具开发的java应用程序,很可能在实际情况下并不能像希望的那样正确执行。,22,Java是什么,Asimple,object-oriented,distributed,interpreted,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,dynamiclanguage.,23,Java是什么,Java是面向对象的程序设计语言Java是Internet上的世界语。Java是最佳的网络应用开发语言。Java是环境Java是产业,Java已经逐步从一种单纯的计算机高级编程语言发展为一种重要的Internet平台,并进而引发、带动了Java产业的发展和壮大,成为当今计算机业界不可忽视的力量和重要的发展潮流与方向!,24,Java的工作方式,文件类型.javaJava源文件.class二进制字节码文件编译过程,25,Java的工作方式,Java程序编译执行的过程,26,Java的工作方式,一次编写,各处运行,27,Java的工作方式,本地计算机系统,Java虚拟机(JVM),.class二进制字节码文件,.javajava源程序文件,编译,28,Java虚拟机,Java虚拟机(JVM)Java虚拟机类似于一个小巧而高效的CPU,Java处理器“芯片”,一般由软件实现,29,Java虚拟机,类装配器,字节码验证器,解释器,本地计算机系统,代码生成器JITcodegenerator,Hello.class,编译型工作方式,解释型工作方式,30,Java的编译与执行,Java虚拟机,31,Java虚拟机,加载代码类加载器加载程序运行所需要的所有的类。类加载器将本地文件系统的类的名字空间与从网络资源来的类的名字空间分开。这样就限制了特洛伊木马程序,因为本地类总是首先加载。一旦所有的类被加载,可执行程序的内存布局就被确定了。内存地址被分配给符号引用表,查找表被建立。由于内存的布局出现在运行时刻,防止了对于代码域的未授权的访问。,32,Java虚拟机,验证代码字节代码验证器Java代码在你的机器上执行前要经过几个测试。字节码验证器测试代码段的格式,检查代码段是否有非法代码(对象的非法存取,试图改变对象类型等)。所有网络来的类文件都要经过字节验证。执行代码运行解释器,33,Java虚拟机,JVM提供以下定义:指令集(Bytecodes是JVM的机器指令)。寄存器组(用于保存机器的运行状态)类文件格式栈(局部变量区、执行环境区和操作数区)垃圾回收“堆”(实现内存的动态分配和自动回收)方法区域(是编译后的代码区域,包括方法代码、符号表等),34,Java术语JVM、JRE,JVMjavavirtualmachineJVM虚拟机将java字节码程序翻译成机器语言。然后由计算机执行。JVM没有其他相关的文件。JVM本身不足以支持javaapplication和applet的运行。JREJavaRuntimeEnvironment,即java运行环境。JRE是由JVM和javaplatform核心类以及相关支撑文件组成。,35,Java术语API,Applicationprogramminginterface.API是rules(syntax):在java应用技术中如何编程。API包括数百个类sun公司预先编好的代码,经过编译,可在程序中使用的Java代码标准库。你可以在编程中充分利用它们的功能。,36,Java术语JDK、J2SDK,JDKjavadeveloperskit(java开发工具包)JDK包含JVM和其他工具,以及所有的API和相关文件。JDK是java技术的旧名(1999/11以前),JDK1.1是最后版本。Java2Java2Platform,J2SDKjava技术的新名称SDKSoftwareDevelopmentKit,37,JVMplusbasicAPIs(whatyouneedtodistributetopeoplewhowillrunyourJavaprograms),JVMplusallAPIs,compilers,tools,anddocumentation(whatyouneedinordertowritejavatechnologyprograms),38,Java开发工具,J2SDK系列(Sun)命令行方式JBuilder(Borland)VisualJ+(MicroSoft)VisualAgeforJava(IBM),39,Java开发工具,Java2SDK(SoftwareDevelopmentKit)StandardEdition(J2SE)EnterpriseEdition(J2EE)MobileEdition(J2ME),40,Java开发工具,J2SEJ2SDK的核心部分开发工具编译器调试器文档制作工具运行环境Java虚拟机组成Java2平台API的类。帮助文档附加库,41,Java开发工具包括Javac:Java编译器,用来将java程序编译成Bytecode。Java:Java解释器,执行已经转换成Bytecode的java应用程序。Jdb:Java调试器,用来调试java程序。Javap:反编译,将类文件还原回方法和变量。Javadoc:文档生成器,创建HTML文件。Appletviewer:Applet解释器,用来解释已经转换成Bytecode的java小应用程序。,Java开发工具,42,Java开发工具,环境安装以J2sdk1.4.0为例下载地址下载文件j2sdk-1_4_0-win.exej2sdk-1_4_0-doc.zip安装直接运行“j2sdk-1_4_0-win.exe”。文档解开“j2sdk-1_4_0-doc.zip”。,43,Java开发工具,安装JDK后产生如下目录:bin目录:Java开发工具,包括Java编译器、解释器等demo目录:一些实例程序lib目录:Java开发类库jre目录:Java运行环境,包括Java虚拟机、运行类库等,44,Java集成开发环境,几种集成开发环境JcreatorLEBorlandJBuilderMicrosoftVisualJ+IBM:VisualAgeforJavaSunONEStudio,45,Java语言应用,由于其跨平台的特点,可用于不同机型、不同操作系统计算机之间的数据交换和通信,完成协调控制、综合管理等功能用于可视化图形软件和动画软件的设计由于其具有良好的图形功能、可视化及可操作化等优点,可用于计算机交互软件的设计和开发由于具有Applet功能,可很方便地将动画和各种信息嵌入到网页,为Internet网络用户设计生动活泼的带动画的主页提供了便利,46,Java程序的几种类型,Application“Java应用”是可以独立运行的Java程序。由Java解释器控制执行。Applet“Java小程序”不能独立运行,而是被嵌入到Web页中。由与Java兼容的浏览器控制执行。,47,程序类型与用户界面,48,Java程序结构,LotsHelloApplication.javaimportjava.io.*;publicclassLotsHelloApplicationpublicstaticvoidmain(Stringargs)for(intj=0;jjavacHelloApplication.javaD:javaHelloApplicationHello,JavaWorld!,D:javacHelloApplet.javaD:appletviewerindex.html,62,Javaapplication程序示例,JavaApplication由Java解释器独立运行字节码由专门的命令行启动程序执行程序中有定义了main()方法的主类,例:FileEdit.java开始使用J2SDK:javacFileEdit.java编译器,编译出.class文件javaFileEdit解释器,运行主类,63,Javaapplet小程序示例,JavaApplet不能独立运行,字节码必须嵌入HTML文档当浏览器调用含Applet的Web页面时执行程序中含有java.applet.Applet类的子类,例:Clock2.javajavacClock2.java生成Clock2.class文件利用浏览器浏览已嵌入了Clock2.class的文件index.html。,64,Servlet运行在服务器端,响应客户端请求,扩展了服务器的功能运行Servlet需要服务器的支持,需要在服务器中进行部署Servlet用到的包在J2EE的API中能找到所有的servlet都必须实现Servlet接口,Servlet程序*,65,通过Servlet程序在用户浏览器上输出。imp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论