JSP开发的Java语言基础.ppt

上传人:小飞机 文档编号:5436398 上传时间:2023-07-06 格式:PPT 页数:42 大小:955.50KB
返回 下载 相关 举报
JSP开发的Java语言基础.ppt_第1页
第1页 / 共42页
JSP开发的Java语言基础.ppt_第2页
第2页 / 共42页
JSP开发的Java语言基础.ppt_第3页
第3页 / 共42页
JSP开发的Java语言基础.ppt_第4页
第4页 / 共42页
JSP开发的Java语言基础.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《JSP开发的Java语言基础.ppt》由会员分享,可在线阅读,更多相关《JSP开发的Java语言基础.ppt(42页珍藏版)》请在三一办公上搜索。

1、第7章 JSP开发的Java语言基础,学习Java的基本语法了解在JSP中的Java使用方法,7.1 Java简介,1995年,美国Sun Microsystems公司正式向IT业界推出了Java语言。该语言具有安全、跨平台、面向对象、简单、适用于网络等显著特点,7.1.1 Java语言特点,1)简单性 Java采用精简的系统,且对硬件的要求不高,在小型的计算机上便可以良好的运行2)面向对象 Java语言的设计是完全面向对象的,所有的Java程序和applet均是对象,且Java支持静态和动态的代码继承和复用。3)鲁棒(健壮性)Java是一种强类型的语言,在编译和连接时都要进行大量的类型检查;

2、Java语言中取消了复杂的指针,不能通过指针访问内存单元,并且Java的数组并非用指针实现,避免了数组越界;无用内存自动回收机制也增加了Java的鲁棒性。,7.1.1 Java语言特点,4)安全性 Java在运行应用程序时,严格检查访问数据的权限,不允许网络上的应用程序修改本地的数据。解释器在解释执行字节码文件时通过阻止对内存的直接访问来进一步提高Java的安全性。Java极高的鲁棒性也增强了Java的安全性。5)结构中立并且可以移植 Java编译器编译生成与计算机体系结构无关的字节码文件,使得Java应用程序可以在配备了Java解释器和运行时环境的任何计算机系统上运行。Java的运行时系统也

3、是用Java语言实现的,从而也具有可移植性。Java的可移植性原理如图7-1。,7.1.1 Java语言特点,6)高性能 在一些特定的CPU上,Java字节码可以快速的转换成为机器码进行执行。Java虚拟机的改进和“即时编译”(just in time)技术的出现使得Java的执行速度有了更大的提高。7)解释执行、多线程并且是动态的 为实现跨平台性,Java设计成为解释执行。多线程使应用程序可以同时进行不同的操作,处理不同的事件,不同的线程互不干涉,从而实现网络上的实时交互操作。Java在执行过程中,可以动态的加载各种类库,即使是更新类库也不必重新编译使用这一类库的应用程序。,7.1.2 Ja

4、va和JavaScript的比较,1)面向对象与基于对象 Java是一种真正的纯面向对象编程语言,一切都作为对象;JavaScript是一种脚本语言,是基于对象的语言,本身提供了丰富的内部对象供设计人员使用。2)开发和运行环境的不同 编写Java程序并使之运行,需在系统内安装相应版本的JDK和 JVM,保证代码能够得到编译和运行的环境;而编写JavaScript则只需使用某种HTML文档编辑器甚至某种字符编辑器(如Notepad),然后打开浏览器即可运行。,7.1.2 Java和JavaScript的比较,3)解释和编译 Java的源代码在传递到客户端执行之前,必须经过编译,在客户端上由相应的

5、仿真器或解释器解释执行。JavaScript是解释性的,其源代码在发往客户端执行之前不需经过编译,直接发送给客户编由浏览器解释执行。4)变量类型不一样 Java采用强类型变量:所有变量在编译之前必须声明。JavaScript中变量采用弱类型:变量在使用前不需声明,由 解释器在运行时检查其数据类型,7.1.2 Java和JavaScript的比较,5)代码格式不一样 Java是与HTML无关的格式,必须在HTML文档中使用相应 标记装载,其代码以字节代码的形式保存在独立的文档中。JavaScript的代码是一种文本字符格式,可以直接嵌入 HTML文档中,并且可动态装载。6)嵌入方式不一样 在HT

6、ML文档中,JavaScript使用来 标识,而Java使用来标识。,Java支持多种数据类型,用于声明变量、创建数组以及其他更复杂的数据结构。Java的数据类型如图7.2所示。,图7-2 Java数据类型,7.2 Java的基本语法,7.2.1 数据类型,1整型Java整数类型有固定的表述范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性。Java语言整型常量有三种表示形式:十进制整数:如123,-456,0八进制整数:以0开头,如0123表示十进制数83,011表示十进制数9。十六进制整数:以0 x或0X开头,如0 x123表示十进制数291,0X12表示十进制数18。J

7、ava默认的整形常量为int类型,声明long型常量需要在后面加上l或L。,7.2.1 数据类型,2字符类型(char)字符常量是用单引号括起来的一个字符,如a,A;字符型变量通过关键字char声明,采Unicode编码(全球统一编码),每个字符占两个字节(16位)范围为065535。3布尔类型(boolean)布尔型数据只有两个值true和false,不可以用0或非0的整数替代true和false,一般用于做逻辑运算,进行程序流程控制。如:boolean b=true;,7.2.1 数据类型,4浮点型(实型)数据Java的浮点型数据有固定的表数范围和字段长度,不受平台影响。Java浮点型常量

8、有两种表示形式:十进制数形式:由数字和小数点组成,且必须有小数点,如 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)容量大的数据类型转换为容量小的数据类型时,要加上强

9、制转换符,可能造成精度降低或溢出。(3)多种类型的数据混合运算时,系统首先自动地将所有数据类型转换成容量最大的那一种数据类型,然后再进行计算,7.2.2 数组,数组是多个数据项的有序集合,其中的每个数据项称为数组的 元素。Java语言中,数组具有下列特点:(1)同一数组中的所有元素均属于相同的数据类型,该 数据类型称为数组的基本类型。(2)数组元素的类型可以是简单数据类型则每个元素都为一个值;也可以是复合类型(类类型、接口或数组类型),则每个元素是一个对象。(3)数组一经创建,其元素个数就保持不变,该数目称为数组的长度。(4)数组中的每一个元素借助于下标(index)来访问。,7.2.2 数组

10、,1、一维数组的声明方式:type arrayName;type arrayName;2、一维数组的动态创建 Java语言通过“new”操作符动态创建数组 arrayName=new elementType ARRAY_SIZE;,7.2.2 数组,3、一维数组元素的访问 创建数组之后,按如下语法格式来访问一维数组元素:arrayName index;,7.2.2 数组,4一维数组的初始化 定义和创建完数组后,需对数组进行初始化。对于一维数组,可以采用如下方法进行初始化:(1)动态初始化 数组定义与数组元素分配空间和赋值的操作分开进行,例如 程序清单7-1(2)静态初始化 定义数组的同时为数组

11、元素分配空间并赋值,例如:int a=3,9,8,5;Date days=new Date(2007,5,4),new Date(2008,3,2),new Date(2008,10,1);,7.2.2 数组,多维数组是数组的数组,每个元素的数据类型为数组类型。1、多维数组的定义及创建与一维数组类似,二维数组的定义格式为:elementTypearrayName;三维数组的定义格式为:elementTypearrayName;定义后,也要利用new运算符创建二维数组:arrayName=new elementTypeDIMENSION_1_SIZEDIMENSION_2_SIZE;,7.2.2

12、 数组,2多维数组元素的引用 引用多维数组中的元素时要用到多个数组下标,一般的语法格式为:arrayName dimension_1_indexdimension_2_indexdimension_n_index;,7.2.2 数组,3多维数组的初始化多维数组既可以用循环遍历的方式对每个元素进行初始化,也可以在声明的同时用初始化列表进行初始化。(1)使用new运算符动态初始化 Date days1=new Date32;Date days2=new Date3;days20=new Date3;days21=new Date5;days22=new Date6;(2)静态初始化 int a=1

13、,2,3,4,3,4,5;int b32=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.3 Java的面向对象编程基础,Java是一种纯粹的面向对象程序设计语言,在Java看来,所解决问题中的所有的东西都是对象,程序是一大堆对象的组合,每个对象都有自己的存储空间每个对象都一定属于某个类,所以Java编程实

14、际上就是对类和对象的编程。,7.3.1 类和对象基本概念,对象:是用计算机语言对问题域中事物的描述,通过“属性(attribute)”和“方法(method)”来定义事物所具有的静态属性和动态属性。类(class):是对同一类型的对象的一个抽象。各个对象可以看成该类的一个具体实例Java语言中,定义一个类的语法形式如下:class 类名 成员属性;成员方法;,7.3.2 继承性,继承:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。其中一般类称为父类(superclass,超类),特殊类为子类(subclass)。Java语言一个类A继承另一个已存在的类B的语法形式如下:c

15、lass A extends B 成员列表;,7.3.3 包,程序包:是多个类或接口的集合,这些类和接口可分别在不同的.java文件中定义,每个文件称为一个编译单元。每个编译单元又可定义多个类或接口。程序包减少了类或接口的名字冲突,使得程序重用更为方便,组织结构更为清晰。程序包、子程序包、编译单元、类或接口构成了Java程序的逻辑组织结构,通过JavaAPI文档可以看到整个Java语言的结构框架,并可以查看各个包的具体内容。,7.3.3 包,1定义包 package 程序包名;2引用包 import 包名.类名;/只引入指定类 或 import 包名.*;/可引入包中的所 有类和接口,7.3.

16、4 接口,接口是一种特殊的抽象类,它只包含常量和方法的定义,而没有变量和方法的实现Java不支持多继承的,可以通过实现接 口(Interface)来实现多继承。1)接口的声明 interface 接口Pet(宠物)的声明:程序清单7-2,7.3.4 接口,2接口的实现接口的实现需要用保留字implements,必须重写接口中所有的方法。实现接口Pet:见 程序清单7-3,7.3.5 多态性,多态性:程序中同一个符号在不同的情况下具有不同的意义。多态性分为编译时多态性和运行时多态性,主要是指运行时多态性,也叫动态绑定,即在程序运行期间判断所引用对象的实际类型,从而调用其相应的方法。多态的存在必须

17、具备三个条件:(1)有继承:程序中有子类对父类的继承(包括实现接口);(2)有重写:子类必须对父类中的必要方法进行了重写,以 实现自己需要的功能;(3)父类引用指向子类对象:程序调用的必须是父类,而实 际上编译器却调用子类的对象。见 程序清单7-4 Animal.java,GirlsHavaPets.java,7.4 Java的异常处理,异常就是程序运行过程中遇到的严重错误,使程序运行中止,或程序能够继续运行,但得出错误的结果甚至导致严重的后果。Java程序中常见的异常有“找不到特定的类”,“数组越界”,“除0”等。程序应该在出现异常时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或

18、产生不可预见的结果。,7.4.1 异常与异常类,图7-11 Java异常类的结构图,7.4.2 异常的抛出,异常的抛出:Java程序的执行过程如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程称为抛出(throw)异常。所有系统定义的异常可由 系统自动抛出,对于用户自定义的异常需用throw语句抛出。程序中利用throw语句抛出异常格式:class A/throws 后面声明本方法中可能抛出的异常public void someMethod()throws Exception1Exception2./由throw和后面的一个异常类对象

19、来确定具体如何抛出异常if()throw new Exception1(传送的特定异常信息);if()throw new Exception2();,7.4.3 捕获异常,捕获(catch)异常:当Java运行时系统捕获到异常类对象时,会寻找能处理这一异常的处理块,并把当前异常对象交给其处理。异常捕获的结构如下(try catch finally):try 可能出现特定异常的代码;catch()处理异常的语句1;catch()处理异常的语句2;finally 最终执行的语句;见 程序清单7-5,7.5 Java的多线程,程序的顺序执行是一种单线程方式,单线程运行方式具有如下的特点顺序性:即程序

20、执行过程可以看成是一系列严格按程序规定的状态转移的过程;封闭性:也就是说程序执行的最终结果由给定的初始条件决定,不受外界因素的影响;可再现性:只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同结果。程序的并发执行:一组逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠。程序的并发执行可以分成两种情况一种是多道程序系统中多道程序的并发执行,该凡是实际上是宏观上(程序级)同时进行,微观上(指令级)顺序执行的;另一种是在某道程序段的几个程序片段中,包含着一部分可以 同时执行或顺序颠倒执行的代码。程序的并发执行是实现多线 程技术的基础。,多线程的定义,多线程编程是指将程序任

21、务分成几个并行的子任务,由这些子任务并发执行,一起协作完成程序的功能。Java通过类封装了线程及其上的操作。一、线程的创建和启动:有两种方法:定义Thread的子类实现Runnable接口。,多线程的定义,二、线程的生命周期从创建一个新线程到这个线程消亡(或终止)的时间段称为线程的生命周期,在整个生命周期中线程表现出五种不同的状态:(1)创建状态(2)可运行状态(3)运行中状态(4)阻塞状态(5)死亡状态,7.5.2 线程优先级,Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照线程的优先级决定应调度哪个线程来执行。线程的优先级用数字表示,范围从1到10,一个线

22、程的默认优先级是5。线程类中用三个常量记录了三种不同的优先级:Thread.MIN_PRIORITYThread.MAX_PRIORITYThread.NORM_PRIORITY,7.5.3 线程同步,多线程程序中会遇到多个线程并发访问一个对象或者数据的情况,此时就要十分小心的处理好线程之间的同步问题。处理不好将可能导致线程读到失效的数据,甚至引发死锁问题。没有同步可能带来的问题 程序清单7-7同步问题的解决 Java语言中采用定义临界区结合加锁机制来解决同步问题。我们在临界区前采用关键字synchronized”来标识。同步时要注意的问题:(1)死锁问题。(2)何时需要同步。,7.6 小结,本章主要针对Java语言的基础知识做了简要的介绍。使读者在学习JSP以前能对Java语言有一个大概的了解在这一章中介绍了Java的基本语法结构,面向对象的程序设计方法,异常的处理和Java中多线程的设计,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号