第10章高级应用

上传人:熏** 文档编号:243141443 上传时间:2024-09-16 格式:PPT 页数:21 大小:250.50KB
返回 下载 相关 举报
第10章高级应用_第1页
第1页 / 共21页
第10章高级应用_第2页
第2页 / 共21页
第10章高级应用_第3页
第3页 / 共21页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第,10,章 高级应用,通过前面的学习,读者已经对,Java,编程有一定的了解。本章将介绍,Java,中一些高级的应用,包含多线程、,JSP,和,Servlet,技术,以及,Java,数据库技术。,10.1,线 程,随着多核,CPU,的问世,使得多线程程序在开发中占有了更重要的位置。,Java,是支持多线程编程的开发语言,用其进行多线程开发既方便又高效,本节将介绍,Java,中多线程开发的相关知识,主要包括线程的基本使用、状态、调度、同步等。,10.1.1 Java,中的线程模型,多线程编程可以使程序具有多条并发执行线索,就像日常工作中由多人同时合作完成一个任务。这在很多情况下可以改善程序的响应性能,提高资源的利用效率,在多核,CPU,年代,这显得尤为重要。然而滥用多线程也有可能给程序带来意想不到的错误,降低程序执行的效率。,Java,中多线程就是一个类或一个程序执行或管理多个线程执行任务的能力,每个线程可以独立于其他线程而独立运行,当然也可以和其他线程协同运行,一个类控制着它的所有线程,可以决定哪个线程具有优先级,哪个线程可以访问其他类的资源,哪个线程开始执行,哪个保持休眠状态,,10.1.2,线程的创建,对于继承,Thread,类与实现,Runnable,接口两种不同方式,在创建线程对象这一步是有区别的,下边将分别介绍在这两种情况下如何创建线程对象。,(,1,)继承,Thread,类方式,继承,Thread,的类,在创建线程对象时非常简单。其继承了,Thread,类,因此其自身的对象便是线程对象,在创建线程对象时只需创建自身的对象即可。,(,2,)实现,Runnable,接口方式,从前面可以看出,继承,Thread,的类创建线程对象的操作非常简单,而对于实现,Runnable,接口的类,其自身的对象并不是一个线程,只是在该类中通过实现,run(),方法指出了线程需要完成的任务 。,10.1.3,线程的同步,多线程程序中,由于同时有多个线程并发运行,有时会带来严重的问题,甚至引发错误。例如,一个银行账户在同一时刻只能由一个用户操作,如果两个用户同时操作很可能会产生错误。为了解决这些问题,在多线程开发中就需要使用同步技术。,同步方法是指用,synchronized,关键字修饰的方法,其与普通方法的不同是,进入同步方法执行的线程将获得同步方法所属对象的锁,一旦对象被锁,其他线程就不能执行被锁对象的任何同步方法。也就是说,线程在执行同步方法之前,首先试图获得方法所属对象的锁,如果不能获得锁就进入对象的锁等待池等待,直到别的线程释放锁,其获得锁才能执行。,10.1.4,线程的调度,同一时刻如果有多个线程处于可运行状态,则它们需要排队等待,CPU,资源。此时每个线程自动获得一个线程的优先级(,priority,),优先级的高低反映线程的重要或紧急程度。可运行状态的线程按优先级排队,线程调度依据优先级基础上的“先到先服务”原则。,Java,自动调度没有逻辑约束的线程时,其执行顺序是没有保障的。但是可以通过编程调用一些调度线程的方法,来实现一定程度上对线程的调度。但要注意的是,这些调度线程的方法,有些是有保障的,有些只是影响线程进入执行状态的几率。,10.1.5,线程的其他方法,除上面介绍的方法外,在线程中还包含一些其他常用的方法,如,sleep(),、,wait(),、,notify(),、,notifyAll,(),。本节主要介绍这,4,个方法的用途。,1,sleep(),在线程执行的过程中,调用,sleep(),方法可以让线程睡眠一段指定的时间,等指定时间到达后,该线程则会苏醒,并进入准备状态等待执行。这是使正在执行的线程让出,CPU,的最简单方法之一,其方法声明如下。,public static void,sleep(long,millis)throws,InterruptedException,public static void,sleep(long,millis,int,nanos)throws,InterruptedException,10.1.5,线程的其他方法,2,wait(),,,notify(),以及,notifyAll,(),自版本,1.0,开始,,JavaSE,就提供了,wait(),,,notify(),以及,notifyAll,(),方法。虽然以上所说的,3,个方法最常出现的地方是线程的内部,但是这些方法并不是,Thread,类的成员函数。实际上,Java,在设计的时候就充分考虑到了同步的问题,因而在设计基础类,Object,的时候就为其提供了这,3,个函数。这就意味着你所编写的任何类都可以使用这些方法(当然某些时候这些方法是没有意义的)。,10.2,Servlet,和,JSP,技术,随着,Java,技术的发展,,Java,与互联网技术已经紧密地结合在一起。在很多的网页中,都可以看到,Java,的身影。对于,Java,在浏览器中的应用,则不得不提到,Servlet,和,JSP,技术,这,2,项技术使,Java,与任何网页脚本、,Web,程序相比都毫不逊色。本节将详细介绍这,2,项技术。,10.2.1 JSP,概述,在当今世界,流行的,Internet,应用程序开发主要有,ASP,,,PHP,,,CGI,,,JSP,等多种方案,技术上各有优缺点,但是,JSP,以其简单易学,跨平台的特性,在众多程序中独树一帜,在短短几年中已经形成了一套完整的规范,并广泛地应用于电子商务等各个领域中。,JSP,(,Java Server Pages,)是由,Sun Microsystems,公司倡导、许多公司参与建立的一种动态网页技术标准。在传统的网页,HTML,文件(*,.,htm,,*,.html,)中加入,Java,程序片段(,Scriptlet,)和,JSP,标记(,tag,),就构成了,JSP,网页(*,.,jsp,)。,10.2.2 JSP,语法,编写,JSP,页面,与编写,Java,程序略有不同,需要遵循一定的,JSP,语法,本节介绍,JSP,中一些常用的语法。,(,1,),HTML,注释。在客户端显示一个注释。, -,(,2,)隐藏注释。,JSP,编译器是不会对,之间的语句进行编译的,它不会显示在客户的浏览器中,也不会在源代码中看到。,10.2.2 JSP,语法,(,3,)表达式。包含一个符合,JSP,语法的表达式。,(,4,),Java,代码。包含,Java,的代码片段。,10.2.2 JSP,语法,(,5,),Include,指令。在,JSP,中包含一个静态的文件,同时解析这个文件中的,JSP,语句,.,(,6,),Page,指令。定义,JSP,文件中的全局属性。,(,7,),Java,包导入。需要导入的,Java,包的列表,这些包作用于程序段,表达式以及声明。,import=,package.class,| package.* , .,10.2.3 JSP,与,JavaBean,JavaBean,是描述,Java,的软件组件模型,有点类似于,Microsoft,的,COM,组件概念。在,Java,模型中,通过,JavaBean,可以扩充,Java,程序的功能,通过,JavaBean,的组合可以快速创建新的应用程序。而且,JavaBean,可以实现代码的重复利用,另外对于程序的易维护性也有很重大的意义。,JavaBean,通过,Java,虚拟机(,Java Virtual Machine,)可以得到正确的执行,运行,JavaBean,的需求是,JDK1.1,或者以上的版本。,10.2.4,Servlet,技术,Servlet,是使用,Java,Servlet,应用程序设计接口(,API,)及相关类和方法的,Java,程序。除了,Java,Servlet,API,,,Servlet,还可以使用用以扩展和添加到,API,的,Java,包。,Servlet,需要在启用,Java,的,Web,服务器上或应用服务器上运行并扩展了该服务器的能力。,Servlet,对于,Web,服务器就像,Java applet,对于,Web,浏览器。,Servlet,装入,Web,服务器并在,Web,服务器内执行,而,Applet,装入,Web,浏览器并在,Web,浏览器内执行。,Java,Servlet,API,定义了一个,Servlet,和服务器之间的一个标准接口,这使得,Servlets,具有跨服务器平台的特性。,10.3,数据库技术,数据库的应用几乎无处不在。作为一个开发人员,数据库应用程序的开发是必须掌握的技能之一。,Java,为数据库应用的开发提供了良好的支持,即,JDBC,(,Java,DataBase,Connectivity,)。,JDBC,具有良好的跨平台性,即进行数据库开发时不必特别关注连接的是哪个厂商的数据库系统,大大提高了开发的方便性与应用程序的可维护性、可扩展性,本节将简要介绍,Java,中,JDBC,数据库编程各方面的相关知识。,10.3.1 SQL,基础,学习数据库,,SQL,语言是必不可少的。下面介绍简单地,SQL,查询语言。,简单的,SQL,查询只包括选择列表、,FROM,子句和,WHERE,子句。它们分别说明了所查询列、查询的表或视图以及搜索条件等。例如,下面的语句查询,testtable,表中姓名为“张三”的,nickname,字段和,email,字段。,SELECT,nickname,email,FROM,testtable,WHERE name=,张三,10.3.2 JDBC,层次结构,Java,应用程序与数据库的连接都是通过,JDBC,来实现的。,JDBC,是,Java,中提供的连接各种不同数据库的通用技术,开发人员只要掌握了,JDBC,的开发技术就可以对各种支持,JDBC,的数据库进行编程开发,而不必再去针对每种数据库进行学习,大大提高了学习与开发的效率。,JDBC,主要为数据库应用的开发提供了下列功能。,支持各种不同的,SQL,语句对数据库进行操作,即通过,JDBC,操作数据库,采用关系数据库中,SQL,语言的通用,大大简化了开发。,10.3.3,加载数据库驱动,在使用,JDBC,连接特定的数据库之前首先要加载相应数据库的,JDBC,驱动类,本小节将介绍如何在开发中加载各种数据库的,JDBC,驱动类。,几种常用数据库的,JDBC,驱动类全称类名。,10.3.4,基本数据库访问,下面以,MySQL,为例介绍如何访问数据库。在使用,JDBC,连接,MySQL,数据库之前,首先需要在机器上安装好,MySQL,数据库,并在其中创建一张名称为,book,的数据库表。在文本编辑器中输入如下,SQL,脚本,并保存为“,mysql.sql,”,文件。,10.4,小结,本章介绍了,Java,中的一些高级应用,如线程、,JSP,和,Servlet,、数据库。这些在现实的应用中都起着非常重要的作用,学习本章将对掌握,Java,编程起到非常重要的作用。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!