




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2/29目录第1章程序设计语言概述第2章程序设计语言的基本成分第3章程序设计方法概述第4章面向对象语言基础第5章类的管理及常用工具类第6章异常处理和断言第7章线程第8章GUI编程基础和applet第9章I/O流第10章网络通信第11章泛型与集合框架3/29第1章程序设计语言概述1.1程序的含义和程序设计策略包括程序的含义、程序设计的通用策略1.2程序设计语言重要属性包括语言的范型、类型系统、编译和解释1.3Java语言概述包括诞生背景、发展、特点、开发环境、运行原理本章重点1、理解程序、程序设计、程序设计语言三概念;2、Java设计初衷、崛起原因、特点、环境配置。5/291.1程序的含义和程序设计策略1.1.2程序设计的通用策略经千百年锤炼出的策略,如:理清思路、掌控主次;先抓主要矛盾,再抓次要矛盾;先定纲要,再写内容。计算机程序开发的经典策略:自顶向下逐步求精N.Wirth于1971年提出;要点:编制程序应分若干步进行,逐步细化。6/29自顶向下逐步求精——示例1:组织一场运动会1.1程序的含义和程序设计策略1.开幕式2.各项比赛3.闭幕式运动会实施计划程序名程序体1.开幕式1.1运动员入场1.2相关人员讲话1.3相关表演……2.各项比赛……3.闭幕式……运动会实施计划第1步程序第2步程序明确、无歧义、能真正实施的计划运动会实施计划···第n步程序注意事项:应注意每次分解出子目标/子步骤或者不宜过多。为什么?注意事项:至少可以有两种分解方式:1.)按日程分解,即第一天/第二天比赛项目、…;2.)按类别分解,田径(短跑、长跑、…)、体操、…;哪种方式较好,为什么?自顶向下逐步求精的精髓,就是简化问题求解步骤,即复杂问题可分为简单的几步,每一步骤又是简单的几步,如此,直至某一步骤可通过一条指令/过程/成熟算法来完成。7/291.1程序的含义和程序设计策略自顶向下逐步求精——示例2:给定有序数组a[0..n-1]。现输入一个整数,将其插入该数组的合适位置,使其仍有序。1)输入数据;2)找位置;3)移出空位;4)实施插入。f(int[]a,intlen)···1)输入数据;2)找位置;……3)移出空位;移动起/止/规律4)实施插入。f(int[]a,intlen)优化:是否可以将2、3两步合并?能否改进等问题,应当成为一种常态思维。用Java、C等语言书写的源代码f(int[]a,intlen)8/291.1程序的含义和程序设计策略1.1.3运行程序的两种基本方式两种:编译方式和解释方式编译方式:编:编辑(优化),译:翻译做法:用编译器将源代码全部一次性地翻译成二进制代码语言:C/C++、Pascal/Delphi、……优点:能提高代码质量、程序执行速度快缺点:程序运行期间,程序员无法干预编译器硬件源代码二进制代码9/291.1程序的含义和程序设计策略1.1.3运行程序的两种基本方式解释方式做法:用解释器将源代码逐句翻译源码,逐句执行;语言:Basic/VB、Java、C#、JSP、XML、……优点:能监控程序执行,可通过在解释器(也称虚拟机)中新增机制或模拟硬件,提供更多更高级的语言机制;缺点:代码很难优化(为什么?)、程序执行速度慢解释器(虚拟机)硬件源代码二进制代码目前,解释性语言日渐兴起。源于两点:1.)速度足以应对普通应用;2.)易于扩充高级语言机制10/291.2程序设计语言重要属性语言的设计范型类型系统编译型语言和解释型语言11/291.2程序设计语言重要属性1.2.1语言的设计范型计算是计算机最核心任务。语言的设计范型就是如何看待计算,这是描述计算的前提和基础。例如:目前主流有四种范型:命令式范型:计算就是用指令去修改数据;面向对象式范型:计算就是对象间的互操作;函数式范型:计算就是对数学函数的求解;逻辑式范型:计算就是为做出逻辑判定而进行的推理。范型框定了程序最基本的范畴。例如,对命令式语言,基础成分就是指令、数据,这样才能表达命令式的计算。12/291.2程序设计语言重要属性1.2.2类型系统类型系统是程序设计语言最为核心的成分之一。涉及数据如何组织、分类,新类别怎样构造,类型如何使用,以及类型安全等方面。主要讨论分类和构造强类型和弱类型静态语言和动态语言13/291.2程序设计语言重要属性1.2.2类型系统分类和构造分类策略:基本类型+新类型构造机制注意:基本类型对应最基本数据,且类型不能太多;基本类型常用汇编、C等设计;类型构造机制应易用且安全。——简单比较C和Java的类型系统描述数据是程序设计语言最重要基础的任务之一。14/291.2程序设计语言重要属性1.2.2类型系统强类型语言和弱类型语言“强”是指类型检查严格;如if(i=5)类型检查强弱与自动类型转换密切相关。强类型语言要求:转换后数据无损+转换前后类型的语义要相容。强类型语言,常见的有Pascal、Java、C#等;弱类型语言,常见的有C、VB、Python等。强类型语言可以充分利用强大的类型检查功能,帮助程序员在运行前检测出程序中的许多错误,从而在一定程度上提高软件的可靠性。弱类型语言使用灵活、方便,但也更易出错。15/291.2程序设计语言重要属性1.2.2类型系统静态语言和动态语言静态:与编译器相关;动态:与运行时相关。属性:不可变更的关联;绑定:可变更的关联。如……静态语言要求类型静态绑定,动态语言要求类型动态绑定,即运行时的不同时刻变量可以拥有不同的类型。静态语言:C、Pascal、C++、Java、C#动态语言:VB、Python
动态类型语言有三大内伤:1.类型的动态绑定让编译器的错误检测功能丧失殆尽;2.变量存储空间须能够弹性变化,执行开销大;3.动态语言必须是解释型语言。静态语言可充分利用编译阶段的语法检查,提高程序的可靠性,同时类型信息也为编译优化提供帮助。动态语言让一个变量在不同时刻拥有不同的类型,这为编程带来很大的灵活性。Statictypingwhenpossible,dynamictypingwhenneeded。换言之,对大多数类型,尽可能采用静态类型绑定机制;当然,对极个别特殊类型,也可定制专门的动态类型绑定机制。16/291.2程序设计语言重要属性1.2.3编译型语言和解释型语言编译型语言以编译方式运行的语言解释型语言以解释方式运行的语言17/291.3Java语言概述Java语言的诞生和发展Java语言的特点Java编程环境Java程序的运行原理18/291.3Java语言概述1.3.1Java语言的诞生和发展产生背景1990年12月,Sun成立了一个以JamesGosling为首的项目小组”theGreenProject”(Secretly),基于C++来开发消费电子类产品(嵌入式设备)。后发现问题:嵌入式设备资源有限VSC++程序太过庞大;芯片将嵌入不同硬件VSC++程序难跨平台。解决策略:依托C++,参照SmallTalk、Ada,设计出小巧、够用、能跨平台的新语言。1992年Oak诞生,因重名于1995年更名为Java。JamesGosling19/291.3Java语言概述产生背景Oak新出,市场不成熟,生产商不用,Oak被搁置;1993年,Internet迅猛发展为Java带来机遇:网络环境是多种软硬件平台共存的异构环境,因此需要能够支持跨平台的编程语言;当时网速很小,不支持体积庞大的网络程序。上述要求与嵌入式平台的要求何其相像?!调整Oak并新增Applet以及可运行Applet程序的浏览器HotJava。动态网页的魅力引起了轰动。1995年,IBM、Apple、HP、Oracle、Nescape、微软等宣布支持Java。20/291.3Java语言概述1.3.1Java语言的诞生和发展Java的发展1998年之前:十分简陋,程序运行速度也极低。甚至程序员之间交流经验,如何让Java跑的更快。1998年12月,发布JDK1.2,对内核作了重大改进,也废弃了许多原有成分。以至于Sun将1.2版之后的Java称之为Java2,即第二代Java。2004年9月,发布JDK1.5,引入许多现代语言的高级特色,如泛型等。Sun对1.5版的java引领程序设计语言的发展潮流充满期望,并为其取了个雄壮的名字:Tiger。21/291.3Java语言概述1.3.2Java语言的特点完全面向对象和简单性相对于C++支持过程式程序设计、机制较复杂而言平台无关性实现跨平台需要两个关键要素:虚拟机和字节码。注意:不同平台有相同的字节码,但要用不同的虚拟机22/291.3Java语言概述1.3.2Java语言的特点安全性和可靠性安全性,是指程序自身抵御外界攻击的能力。可靠性,是指系统在某时间段内运行不出错的几率。网络程序对安全性和可靠性有着更为迫切的要求;Java从语言的语法、到运行环境,为提升程序的安全性和可靠性做了大量努力;23/291.3Java语言概述1.3.2Java语言的特点并发和分布式计算的支持Java有RMI机制,以支持分布式计算。用线程机制支持并发执行。高效的网络编程机制Java雄起源自网络,强项也在网络编程。如提供常用网络通信协议的接口;使用流思想、序列化思想等,来简化通信模型。甚至用Object类作为始祖类,也有方便网络通信编程的目的。24/291.3Java语言概述1.3.3Java编程环境JDK的组成25/291.3Java语言概述1.3.3Java编程环境JDK的下载、安装与设置/javase/downloads/index.jsp安装后,产生的目录结构介绍;通过src.zip,可了解系统类内部设计细节。对理解某些复杂机制非常有帮助;Path、classPath的作用及设置(注意classPath路径设置时要添加";.\")Java帮助文件的使用内容最权威也最全面26/291.3Java语言概
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论