东北大学姚羽研究生高级java题目课案Word下载.docx
《东北大学姚羽研究生高级java题目课案Word下载.docx》由会员分享,可在线阅读,更多相关《东北大学姚羽研究生高级java题目课案Word下载.docx(10页珍藏版)》请在冰点文库上搜索。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。
3、Polymorphism:
多态,是指面向对象程序运行时,相同的消息可能会送给多个不同的类
之对象,而系统可依据对象所属类,引发对应类的方法,而有不同的行为。
简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作称之。
在面向对象程序设计中,多态一般指子类型多态(Subtypepolymorphism)。
多态可细分为变量多态与函数多态。
变量多态是指:
基类型的变量(对于C++是引用或指针)可以被赋值基类型对象,也可以被赋值派生类型的对象。
函数多态是指,相同的函数调用界面(函数名与实参表),传送给一个对象变量,可以有不同的行为,这视该对象变量所指向的对象类型而定。
因此,变量多态是函数多态的基础。
4、Wrapper class:
包装类,Java语言是一个面向对象的语言,但是Java中的基本数据类
型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(WrapperClass),有些地方也翻译为外覆类或数据类型类。
包装类均位于java.lang包,包装类和基本数据类型的对应关系如下:
基本数据类型(包装类)byte(Byte)、short(Short)、char(Character)、int(Integer)、long(Long)、float(Float)、double(Double)、boolean(Boolean)
在这八个类名中,除了Integer和Character类以外,其它六个类的类名和基本数据类型一致,只是类名的第一个字母大写即可。
对于包装类说,这些类的用途主要包含两种:
a、作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。
b、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
5、EventListener:
EventListener 接口是处理事件的主要方法。
用户实现
EventListener接口,并使用AddEventListener方法在EventTarget上注册其侦听器。
用户还应该在使用完侦听器后从其EventTarget移除EventListener。
6、Applet:
Applet或Java小应用程序是一种在Web环境下,运行于客户端的Java程序组
件。
它也是1990年代中期,Java在诞生后得以一炮走红的功臣之一。
通常,每个Applet
的功能都比较单一(例如仅用于显示一个舞动的Logo),因此它被称作“小应用程序”1。
Applet必须运行于某个特定的“容器”,这个容器可以是浏览器本身,也可以是通过各种插件,或者包括支持Applet的移动设备在内的其他各种程序来运行。
与一般的Java应用程序不同,Applet不是通过main方法来运行的(参见Java的Hello World程序和Java
Applet的HelloWorld程序)。
在运行时Applet通常会与用户进行互动,显示动态的画面,并且还会遵循严格的安全检查,阻止潜在的不安全因素(例如根据安全策略,限制Applet对客户端文件系统的访问)。
7、Serializable:
最高的隔离级别。
在基于锁机制并发控制的DBMS实现可序列化要求在选
定对象上的读锁和写锁保持直到事务结束后才能释放。
在SELECT 的查询中使用一个
“WHERE”子句来描述一个范围时应该获得一个“范围锁(range-locks)”。
这种机制可以避免“幻影读(phantom reads)”现象。
当采用不基于锁的并发控制时不用获取锁。
但当系统探测到几个并发事务有“写冲突”的时候,只有其中一个是允许提交的。
这种机制的详细描述见“'
快照隔离”。
publicinterfaceSerializable类通过实现java.io.Serializable接口以启用其序列化功能。
未实现此接口的类将无法使其任何状态序列化或反序列化。
可序列化类的所有子类型本身都是可序列化的。
序列化接口没有方法或字段,仅用于标识可序列化的语义。
8、Interface:
是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,以
封装一定功能的集合。
它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。
接口不能直接实例化,即ICountic=newiCount()是错的。
接口不能包含成员的任何代码,只定义成员本身。
接口成员的具体代码由实现接口的类提供。
接口使用
interface关键字进行声明。
9、clob:
SQL类型CLOB在JavaTM编程语言中的映射关系。
SQLCLOB是内置类型,它将CharacterLargeObject存储为数据库表的某一行中的一个列值。
默认情况下,驱动程序使用SQLlocator(CLOB)实现Clob对象,这意味着CLOB对象包含一个指向SQLCLOB数据而不是数据本身的逻辑指针。
Clob对象在它被创建的事务处理期间有效。
CLOB接口提供某些方法来获得SQLCLOB(CharacterLargeObject)值长度、在客户端实现
CLOB 值以及搜索子字符串或 CLOB 值中的 CLOB 对象。
接口
ResultSet、CallableStatement和PreparedStatement中的方法(如getClob和setClob)允许编程人员访问SQLCLOB值。
此外,此接口还拥有更新CLOB值的方法。
publicinterfaceBlob
JAVADOCS:
SQLBLOB值在JavaTM编程语言中的表示形式(映射关系)。
SQLBLOB是内置类型,它将二进制大对象(BinaryLargeObject)存储为数据库表某一行中的一个列值。
默认情况下,驱动程序使用SQLlocator(BLOB)实现Blob,这意味着Blob对象包含一个指向SQLBLOB数据的逻辑指针而不是数据本身。
Blob对象在它被创建的事务处理期间有效。
10、GUI:
图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采
用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
11、URL:
(UniformResourceLocator)统一资源定位符是对可以从互联网上得到的资源的位置
和访问方法的一种简洁的表示,是互联网上标准资源的地址。
互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
12、OOP:
面向对象编程(ObjectOrientedProgramming,OOP,面向对象程序设计)是一
种计算机编程架构。
OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。
13、JVM:
JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的
规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
Java语言的一个非常重要的特点就是与平台的无关性。
而使用Java虚拟机是实现这一特点的关键。
14、Swing:
Swing是一个用于开发Java应用程序用户界面的开发工具包。
以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。
工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event
15、Decorator:
DecoratorPattern,装饰者模式,在不必改变原类文件和使用继承的情况下,
动态地扩展一个对象的功能。
它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
16、JDBC:
Java数据库连接,(JavaDatabaseConnectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
JDBC也是SunMicrosystems的商标1。
它JDBC是面向关系型数据库的。
17、instanceof:
instanceof是Java、php的一个二元操作符(运算符),和==,>
,<
是同一
类东西。
由于它是由字母组成的,所以也是Java的保留同一类东西。
由于它是由字母组成的,所以也是Java的保留关键字。
它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。
可以用来判断继承中的子类的实例是否为父类的实现。
相当于c#中的is操作符。
java中的instanceof运算符是用来在运行时指出对象是否是特定类的一个实例。
instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
二、 简答题
1、解释下列关键字的含义,并说明其在编程中的作用
Static,final,transient,throws,throw、try、catch、finally、synchronized
Static:
用static修饰的属性称为静态属性,也称为类属性,是属于声明本静态方法的这个类的,而不是这个类的某个对象。
用static修饰的方法,称为静态方法,也叫类方法,原理跟静态属性基本类似。
P15
Final:
数据、方法、类三种类型
(1)final修饰类中的属性或者变量
无论属性是基本类型还是引用类型,final所起的作用都是变量里面存放的“值”不能变。
这个值,对于基本类型来说,变量里面放的就是实实在在的值,如1,“abc”等。
而引用类型变量里面放的是个地址,所以用final修饰引用类型变量指的是它里面的地址不能变,并不是说这个地址所指向的对象或数组的内容不可以变,这个一定要注意。
(2)final修饰类中的方法
作用:
可以被继承,但继承后不能被重写。
(3)final修饰类 作用:
类不可以被继承。
Transient:
Throws、throw、try、catch、finally:
关键字:
throw throw是一种控制程序流程的特殊方法而已。
没有相应的catch的话,可以中止当前的方法继续执行。
throws 声明方法时候,如果不声明throws的话,那么一般的Exception都要在这个方法中终结,也就是说一定要有相应的catch处理,否则编译时会产生错误。
如果方法声明了throws的话,可以交给上一级方法去处理。
以此类推。
但是有些Exception可以不加捕捉,编译也会通过。
继承Exception类,可以自己定义Exception,对于特定的状态,用throw抛出专用的例外。
这对于特定的middleware开发,有一定帮助。
try、catch 用个形象的比喻,如果说throws相当于职业介绍中介的话,那try和
catch就是一对倒霉的打工仔。
很有意思,throws只是告诉编译器--方法可能产生的异常问题,然后把问题处理抛给try和catch。
他们一个负责发现异常关系,一个负责异常捕获。
Finally:
finally始终在执行完try和catch块之后执行,与是否抛出异常或者是否找到与异常类型匹配的catch块无关。
Finally块用于清理在try块中执行的操作,如释放其占用的资源,而不用等待由于运行库中的垃圾文件回收器来完成对象。
Synchronized:
1).是某个对象实例内,synchronized aMethod{}可以防止多个线程同时访问这个对象的
synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。
这时,不同的对象实例的synchronized方法是不相干扰的,也就是说,其它线程照样可以同时访问相同类的另一个对象实例的synchronized方法。
2).是某个类的范围,synchronizedstaticaStaticMethod{}防止多个线程同时访问这个类中的synchronizedstatic方法。
它可以对类的所有对象实例起作用。
3).除了方法前用synchronized关键字,synchronized关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。
2、给出五个使用java进行数据库编程是常用的类及其功能,并写出一段简短的数据库操作流程。
答:
Driver:
AJDBCdriverisasoftwarecomponentenablingaJavaapplicationtointeractwithadatabase.JDBCdriversareanalogoustoODBCdrivers,ADO.NETdataproviders,andOLEDB
providers.Toconnectwithindividualdatabases,JDBC(theJavaDatabaseConnectivityAPI)requiresdriversforeachdatabase.TheJDBCdrivergivesouttheconnectiontothedatabaseandimplementstheprotocolfortransferringthequeryandresultbetweenclientanddatabase.
DriverManager:
Connection:
Statement:
PreparedStatement:
CallableStatement:
ResultSet:
流程见课件P10
3、类、对象、句柄之间的关系
4、什么是JAVABEAN,什么是EJB,两者的功能和差别?
(1)、JavaBean
定义:
一种用Java语言写的可重用组件(是具有某种功能,或者处理某个业务的对象)。
JavaBean是一种JAVA语言写成的可重用组件。
为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。
JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。
众所周知,属性名称符合这种模式,其他Java类可以通过自身机制发现
和操作这些JavaBean的属性。
特点:
共有类、无参构造、私有属性(共有的get、set方法)、可以有方法,但不作为业务逻辑
优点:
Writeonce,runanywhere,reuseeverywhere。
(2)、EJB
一个技术规范:
EJB 从技术上而言不是一种"
产品"
。
EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的·
com技术。
凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。
EJB是一种描述了构建应用组件要解决的标准:
可扩展(Scalable) 分布式(Distributed) 事务处理(Transactional)数据存储(Persistent)安全性(Secure)
notice:
JavaBean和ServerBean(通常称为EnterpriseJavaBean(EJB))有一些基本相同之处。
它们都是用一组特性创建,以执行其特定任务的对象,获得其它特性的能力。
这使得bean的行为根据特定任务和所在环境的不同而有所不同。
EnterpriseBean与JavaBean不同。
JavaBean是使用java.beans包开发的,它是Java2标准版的一部分。
JavaBean是一台机器上同一个地址空间中运行的组件。
JavaBean是进程内组件。
EnterpriseBean是使用javax.ejb包开发的,它是标准JDK的扩展,是Java2EnterpriseEdition的一部分。
EnterpriseBean是在多台机器上跨几个地址空间运行的组件。
因此EnterpriseBean是进程间组件。
JavaBean通常用作GUI窗口小部件,而EnterpriseBean则用作分布式商业对象.
其中,EJB有EntityBean、SessionBean、MessageDrivernBean三种。
EntityBean是OR映射中对应表的每行信息封装的实体类
5、upcasting与downwardcast的区别与联系。
相同:
都用父类作为参数;
调用时为子类的方法。
不同:
upcasting调用的方法是父类和子类都拥有的方法
Downwardcast调用的方法是子类特有的方法(即父类没有的方法)三、编程题
1、三角形输出 例子:
javaexample7
(1)
(2)
(1)
(2)只修改部分代码
更简单一点的三角形画法:
2、用程序实现仿记事本程序。
能使文本显示到文本区,支持文件另存为。
在程序中使用
javadoc标签进行注释。
3、student.txt
importjava.io.BufferedInputStream;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileReader;
importjava.io.IOException;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
importjava.sql.Statement;
/**
*装饰模式的应用
*将student.txt读入到test.mysql中
*
*/
publicclassDecoratorApp{
*@paramargs
*@throwsSQLException
*@throwsClassNotFoundException
*@throwsIllegalAccessException
*@throwsInstantiationException
publicstaticvoidmain(String[]args)throwsException{
//创建数据库连接Connectionconn=null;
Statementstmt=null;
Class.forName("
com.mysql.jdbc.Driver"
).newInstance();
conn =
DriverManager.getConnection("
jdbc:
mysql:
//localhost/test?
user=root&
password=root"
);
//实例化数据库操作对象
stmt=conn.createStatement();
//从student.txt读出数据
try{
// FileInputStreamfis=newFileInputStream(newFile("
c:
//student.txt"