




免费预览已结束,剩余37页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章JSP开发的Java语言基础,学习Java的基本语法了解在JSP中的Java使用方法,7.1Java简介,1995年,美国SunMicrosystems公司正式向IT业界推出了Java语言。该语言具有安全、跨平台、面向对象、简单、适用于网络等显著特点,7.1.1Java语言特点,1)简单性Java采用精简的系统,且对硬件的要求不高,在小型的计算机上便可以良好的运行2)面向对象Java语言的设计是完全面向对象的,所有的Java程序和applet均是对象,且Java支持静态和动态的代码继承和复用。3)鲁棒(健壮性)Java是一种强类型的语言,在编译和连接时都要进行大量的类型检查;Java语言中取消了复杂的指针,不能通过指针访问内存单元,并且Java的数组并非用指针实现,避免了数组越界;无用内存自动回收机制也增加了Java的鲁棒性。,7.1.1Java语言特点,4)安全性Java在运行应用程序时,严格检查访问数据的权限,不允许网络上的应用程序修改本地的数据。解释器在解释执行字节码文件时通过阻止对内存的直接访问来进一步提高Java的安全性。Java极高的鲁棒性也增强了Java的安全性。5)结构中立并且可以移植Java编译器编译生成与计算机体系结构无关的字节码文件,使得Java应用程序可以在配备了Java解释器和运行时环境的任何计算机系统上运行。Java的运行时系统也是用Java语言实现的,从而也具有可移植性。Java的可移植性原理如图7-1。,7.1.1Java语言特点,6)高性能在一些特定的CPU上,Java字节码可以快速的转换成为机器码进行执行。Java虚拟机的改进和“即时编译”(justintime)技术的出现使得Java的执行速度有了更大的提高。7)解释执行、多线程并且是动态的为实现跨平台性,Java设计成为解释执行。多线程使应用程序可以同时进行不同的操作,处理不同的事件,不同的线程互不干涉,从而实现网络上的实时交互操作。Java在执行过程中,可以动态的加载各种类库,即使是更新类库也不必重新编译使用这一类库的应用程序。,7.1.2Java和JavaScript的比较,1)面向对象与基于对象Java是一种真正的纯面向对象编程语言,一切都作为对象;JavaScript是一种脚本语言,是基于对象的语言,本身提供了丰富的内部对象供设计人员使用。2)开发和运行环境的不同编写Java程序并使之运行,需在系统内安装相应版本的JDK和JVM,保证代码能够得到编译和运行的环境;而编写JavaScript则只需使用某种HTML文档编辑器甚至某种字符编辑器(如Notepad),然后打开浏览器即可运行。,7.1.2Java和JavaScript的比较,3)解释和编译Java的源代码在传递到客户端执行之前,必须经过编译,在客户端上由相应的仿真器或解释器解释执行。JavaScript是解释性的,其源代码在发往客户端执行之前不需经过编译,直接发送给客户编由浏览器解释执行。4)变量类型不一样Java采用强类型变量:所有变量在编译之前必须声明。JavaScript中变量采用弱类型:变量在使用前不需声明,由解释器在运行时检查其数据类型,7.1.2Java和JavaScript的比较,5)代码格式不一样Java是与HTML无关的格式,必须在HTML文档中使用相应标记装载,其代码以字节代码的形式保存在独立的文档中。JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。6)嵌入方式不一样在HTML文档中,JavaScript使用来标识,而Java使用来标识。,Java支持多种数据类型,用于声明变量、创建数组以及其他更复杂的数据结构。Java的数据类型如图7.2所示。,图7-2Java数据类型,7.2Java的基本语法,7.2.1数据类型,1整型Java整数类型有固定的表述范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性。Java语言整型常量有三种表示形式:十进制整数:如123,-456,0八进制整数:以0开头,如0123表示十进制数83,011表示十进制数9。十六进制整数:以0 x或0X开头,如0 x123表示十进制数291,0X12表示十进制数18。Java默认的整形常量为int类型,声明long型常量需要在后面加上l或L。,7.2.1数据类型,2字符类型(char)字符常量是用单引号括起来的一个字符,如a,A;字符型变量通过关键字char声明,采Unicode编码(全球统一编码),每个字符占两个字节(16位)范围为065535。3布尔类型(boolean)布尔型数据只有两个值true和false,不可以用0或非0的整数替代true和false,一般用于做逻辑运算,进行程序流程控制。如:booleanb=true;,7.2.1数据类型,4浮点型(实型)数据Java的浮点型数据有固定的表数范围和字段长度,不受平台影响。Java浮点型常量有两种表示形式:十进制数形式:由数字和小数点组成,且必须有小数点,如0.123,1.23,123.0科学计数法形式:如123e3或123E3。其中e或E之前必须有数字,且e或E后的指数必须为整数。Java默认的浮点型为double型,若声明一个float型常量,则需在数字后面显式的加上f或F,7.2.1数据类型,Java语言中整型、字符型和浮点型数据在混合运算时可以相互转换,并遵循以下几个原则:(1)容量小的类型自动转换为容量大的数据类型,自动转换顺序为:byte,short,char-int-long-float-double(2)容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,可能造成精度降低或溢出。(3)多种类型的数据混合运算时,系统首先自动地将所有数据类型转换成容量最大的那一种数据类型,然后再进行计算,7.2.2数组,数组是多个数据项的有序集合,其中的每个数据项称为数组的元素。Java语言中,数组具有下列特点:(1)同一数组中的所有元素均属于相同的数据类型,该数据类型称为数组的基本类型。(2)数组元素的类型可以是简单数据类型则每个元素都为一个值;也可以是复合类型(类类型、接口或数组类型),则每个元素是一个对象。(3)数组一经创建,其元素个数就保持不变,该数目称为数组的长度。(4)数组中的每一个元素借助于下标(index)来访问。,7.2.2数组,1、一维数组的声明方式:typearrayName;typearrayName;2、一维数组的动态创建Java语言通过“new”操作符动态创建数组arrayName=newelementTypeARRAY_SIZE;,7.2.2数组,3、一维数组元素的访问创建数组之后,按如下语法格式来访问一维数组元素:arrayNameindex;,7.2.2数组,4一维数组的初始化定义和创建完数组后,需对数组进行初始化。对于一维数组,可以采用如下方法进行初始化:(1)动态初始化数组定义与数组元素分配空间和赋值的操作分开进行,例如程序清单7-1(2)静态初始化定义数组的同时为数组元素分配空间并赋值,例如:inta=3,9,8,5;Datedays=newDate(2007,5,4),newDate(2008,3,2),newDate(2008,10,1);,7.2.2数组,多维数组是数组的数组,每个元素的数据类型为数组类型。1、多维数组的定义及创建与一维数组类似,二维数组的定义格式为:elementTypearrayName;三维数组的定义格式为:elementTypearrayName;定义后,也要利用new运算符创建二维数组:arrayName=newelementTypeDIMENSION_1_SIZEDIMENSION_2_SIZE;,7.2.2数组,2多维数组元素的引用引用多维数组中的元素时要用到多个数组下标,一般的语法格式为:arrayNamedimension_1_indexdimension_2_indexdimension_n_index;,7.2.2数组,3多维数组的初始化多维数组既可以用循环遍历的方式对每个元素进行初始化,也可以在声明的同时用初始化列表进行初始化。(1)使用new运算符动态初始化Datedays1=newDate32;Datedays2=newDate3;days20=newDate3;days21=newDate5;days22=newDate6;(2)静态初始化inta=1,2,3,4,3,4,5;intb32=1,2,3,4,4,5;/非法,7.2.3常用运算,Java语言中常用运算符可分为四类:算术运算符、关系运算符、位运算符及逻辑运算符。此外还定义了一些附加运算符,用于特殊情况的处理。1算术运算2关系运算3.逻辑运算4.位运算,7.2.4控制语句,1if语句2.switch语句3.for语句形式4while和do-while语句,7.3Java的面向对象编程基础,Java是一种纯粹的面向对象程序设计语言,在Java看来,所解决问题中的所有的东西都是对象,程序是一大堆对象的组合,每个对象都有自己的存储空间每个对象都一定属于某个类,所以Java编程实际上就是对类和对象的编程。,7.3.1类和对象基本概念,对象:是用计算机语言对问题域中事物的描述,通过“属性(attribute)”和“方法(method)”来定义事物所具有的静态属性和动态属性。类(class):是对同一类型的对象的一个抽象。各个对象可以看成该类的一个具体实例Java语言中,定义一个类的语法形式如下:class类名成员属性;成员方法;,7.3.2继承性,继承:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。其中一般类称为父类(superclass,超类),特殊类为子类(subclass)。Java语言一个类A继承另一个已存在的类B的语法形式如下:classAextendsB成员列表;,7.3.3包,程序包:是多个类或接口的集合,这些类和接口可分别在不同的.java文件中定义,每个文件称为一个编译单元。每个编译单元又可定义多个类或接口。程序包减少了类或接口的名字冲突,使得程序重用更为方便,组织结构更为清晰。程序包、子程序包、编译单元、类或接口构成了Java程序的逻辑组织结构,通过JavaAPI文档可以看到整个Java语言的结构框架,并可以查看各个包的具体内容。,7.3.3包,1定义包package程序包名;2引用包import包名.类名;/只引入指定类或import包名.*;/可引入包中的所有类和接口,7.3.4接口,接口是一种特殊的抽象类,它只包含常量和方法的定义,而没有变量和方法的实现Java不支持多继承的,可以通过实现接口(Interface)来实现多继承。1)接口的声明interface接口Pet(宠物)的声明:程序清单7-2,7.3.4接口,2接口的实现接口的实现需要用保留字implements,必须重写接口中所有的方法。实现接口Pet:见程序清单7-3,7.3.5多态性,多态性:程序中同一个符号在不同的情况下具有不同的意义。多态性分为编译时多态性和运行时多态性,主要是指运行时多态性,也叫动态绑定,即在程序运行期间判断所引用对象的实际类型,从而调用其相应的方法。多态的存在必须具备三个条件:(1)有继承:程序中有子类对父类的继承(包括实现接口);(2)有重写:子类必须对父类中的必要方法进行了重写,以实现自己需要的功能;(3)父类引用指向子类对象:程序调用的必须是父类,而实际上编译器却调用子类的对象。见程序清单7-4Animal.java,GirlsHavaPets.java,7.4Java的异常处理,异常就是程序运行过程中遇到的严重错误,使程序运行中止,或程序能够继续运行,但得出错误的结果甚至导致严重的后果。Java程序中常见的异常有“找不到特定的类”,“数组越界”,“除0”等。程序应该在出现异常时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果。,7.4.1异常与异常类,图7-11Java异常类的结构图,7.4.2异常的抛出,异常的抛出:Java程序的执行过程如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程称为抛出(throw)异常。所有系统定义的异常可由系统自动抛出,对于用户自定义的异常需用throw语句抛出。程序中利用throw语句抛出异常格式:classA/throws后面声明本方法中可能抛出的异常publicvoidsomeMethod()throwsException1Exception2./由throw和后面的一个异常类对象来确定具体如何抛出异常if()thrownewException1(传送的特定异常信息);if()thrownewException2();,7.4.3捕获异常,捕获(catch)异常:当Java运行时系统捕获到异常类对象时,会寻找能处理这一异常的处理块,并把当前异常对象交给其处理。异常捕获的结构如下(trycatchfinally):try可能出现特定异常的代码;catch()处理异常的语句1;catch()处理异常的语句2;finally最终执行的语句;见程序清单7-5,7.5Java的多线程,程序的顺序执行是一种单线程方式,单线程运行方式具有如下的特点顺序性:即程序执行过程可以看成是一系列严格按程序规定的状态转移的过程;封闭性:也就是说程序执行的最终结果由给定的初始条件决定,不受外界因素的影响;可再现性:只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同结果。程序的并发执行:一组逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠。程序的并发执行可以分成两种情况一种是多道程序系统中多道程序的并发执行,该凡是实际上是宏观上(程序级)同时进行,微观上(指令级)顺序执行的;另一种是在某道程序段的几个程序片段中,包含着一部分可以同时执行或顺序颠倒执行的代码。程序的并发执行是实现多线程技术的基础。,7.5.1多线程的定义,多线程编程是指将程序任务分成几个并行的子任务,由这些子任务并发执行,一起协作完成程序的功能。Java通过java.lang.Thread类封装
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件开发流程面临的挑战试题及答案
- 企业文化与风险管理考题及答案
- 制定职业晋升的长期规划计划
- 2024年甘肃陇南事业单位招聘笔试真题
- VB最佳编程习惯与技巧试题及答案
- 2024年东莞市市场监督管理局招聘笔试真题
- 移动设备安全性测试试题及答案
- 软件工程项目管理中的挑战试题及答案
- 未来市场竞争中的风险识别试题及答案
- 自然语言处理技术试题及答案
- 2021译林版高中英语选择性必修一课文翻译
- 0720小罐茶品牌介绍
- 二级、三级电箱接线图
- 2022年食品卫生通则第三版(中文版)
- 颈椎功能障碍指数,Neck Disabilitv Index,NDI
- 名著导读《红楼梦》PPT课件(完整版)
- 吉林省办学基本标准手册
- 4车道高速公路30米预应力混凝土简支T梁桥上部结构设计_论文
- 体育——常用队列队形的口令及动作要领
- 2020年广东省中考物理试卷分析
- 脱氨蒸氨工段操作规程
评论
0/150
提交评论