java期末考试试题及答案
中国农业科学院研究生院-哈尔滨华德学院
1.谈谈final, finally, finalize的区别。
final关键字:
a) 如果一个类被声明为final,意味着它不能再派生出新的
子类,不能作为父类被继承。因此一个类不能
既被声明为abstract的,又被声明为final的
。
b) 将变量或方法声明为final,可以保证它们在使用中不被改变。
c)
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
d)
被声明为final的方法也同样只能使用,不能重载。
finally关键字:在异常处理时提供
finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch
子句就会执行,然后控制就会进入finally 块。
finalize:方法名,不是关键字。Java技术允许使用 finalize() 方法在垃圾
收集器将对象从内存中清除出去
之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被
引用时对这个对象调用的。它是
在Object 类中定义的,因此所有的类都继承了它。子类覆盖
finalize() 方法以整理系统资源或者执行其他
清理工作。finalize()方法是在垃
圾收集器删除对象之前对这个对象调用的。
是什么? 为什么要有GC?
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会
自动进行管理。要请求垃圾
收集,可以调用下面的方法之一:
() time().gc()
(11.5)等於多少? (-11.5)等於多少?
写程序(11.5) = 12
(-11.5) = -11
4.给我一个你最常见到的runtime exception
ArithmeticException, ArrayStoreException,
BufferOverflowException, BufferUnderflowException,
CannotRedoException, CannotUndoException,
ClassCastException, CMMException,
ConcurrentModificationException, DOMException,
EmptyStackException, IllegalArgumentException,
IllegalMonitorStateException,
IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException,
MissingResourceException,
NegativeArraySizeException,
NoSuchElementException, NullPointerException,
ProfileDataException, ProviderException,
RasterFormatException, SecurityException,
SystemException, UndeclaredThrowableException,
UnmodifiableSetException,
UnsupportedOperationException
ct
class和interface有什么区别
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个
体现某些基本行为的
类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstrac
t 类的实例。然而可以创建一
个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有
抽象构造函数或抽象静态方法。
Abstract 类的子类为它们父类中的所有抽象方法提供实现,否
则它们也是抽象类为。取而代之,在子类中
实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这
样的接口而获
得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static f
inal成员变量。接口的实
现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接
口时,它定义(即将程序体给
予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上
调用接口的方法。由于有抽象
类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用
可以转换到接口类型或从接口
类型转换,instanceof
运算符可以用来决定某对象的类是否实现了接口。
6.面向对象的特征有哪些方面?
1>
.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过
程抽象,二是数据抽象。
2>.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它
提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继
承了原始类的特性,新类称为原始
类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以
从它的基类那里继承方法和实例变
量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3>.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基<
br>本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其<
br>他对象。
4>. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数
化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程
序函数同名
中如何跳出当前多重循环?用break; return 方法.
8.说出一些常用的类、包和接口,各举5个
类 String
Integer Long File Date
包 .*;.*;.*;.*;
.*;
接口: Comparable ,Connection,Map,List,Runable,
类是否可以被继承?填空并上机调试
public class test2
{
public static void main(String args[])
{int
aa[]=new int[15];n(“before entering method:”);
for(int i=0;i<5;i++)
n(“aa[“+i+”]=”+___________);__________________;
n(“after method:”);
for(int i=0;i<5;i++)
n(“aa[“+i+”]=”+aa[i]);}
Static void test( int
[] x)
{int i=10; n(“in mathod:”);
for(;i<15;i++) {x[i-10]+=i;
n(“x[“+(i-10)+”]=”+x[i-10]);}}}
运行结果:String类是final类故不可以继承.
10.填空并上机调试
public class Father
{ int a=100;
public void miner(){ a--;}
public static
void main(String args[])
{ Father
x=________________; son y=new son();
n(“The a of son is:”+y.a);
n(“The a of
son’s super is:”+_________________);
();
n(“The a of son is:”+y.a);
n(“The a of
son’s super is:”+()); }}
class
son_____________________Father
{ int a=0;
public void plus(){a++;}public int getA(){
_____________________;}}
1.谈谈final,
finally, finalize的区别。
final关键字:
a) 如果一个类
被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能
既被声明
为abstract的,又被声明为final的。
b)
将变量或方法声明为final,可以保证它们在使用中不被改变。
c)
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
d)
被声明为final的方法也同样只能使用,不能重载。
finally关键字:在异常处理时提供
finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch
子句就会执行,然后控制就会进入finally 块。
finalize:方法名,不是关键字。Java技术允许使用 finalize() 方法在垃圾
收集器将对象从内存中清除出去
之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被
引用时对这个对象调用的。它是
在Object 类中定义的,因此所有的类都继承了它。子类覆盖
finalize() 方法以整理系统资源或者执行其他
清理工作。finalize()方法是在垃
圾收集器删除对象之前对这个对象调用的。
是什么? 为什么要有GC?
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会
自动进行管理。要请求垃圾
收集,可以调用下面的方法之一:
() time().gc()
(11.5)等於多少? (-11.5)等於多少?
写程序(11.5) = 12
(-11.5) = -11
4.给我一个你最常见到的runtime exception
ArithmeticException, ArrayStoreException,
BufferOverflowException, BufferUnderflowException,
CannotRedoException, CannotUndoException,
ClassCastException, CMMException,
ConcurrentModificationException, DOMException,
EmptyStackException, IllegalArgumentException,
IllegalMonitorStateException,
IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException,
MissingResourceException,
NegativeArraySizeException,
NoSuchElementException, NullPointerException,
ProfileDataException, ProviderException,
RasterFormatException, SecurityException,
SystemException, UndeclaredThrowableException,
UnmodifiableSetException,
UnsupportedOperationException
ct
class和interface有什么区别
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个
体现某些基本行为的
类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstrac
t 类的实例。然而可以创建一
个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有
抽象构造函数或抽象静态方法。
Abstract 类的子类为它们父类中的所有抽象方法提供实现,否
则它们也是抽象类为。取而代之,在子类中
实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这
样的接口而获
得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static f
inal成员变量。接口的实
现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接
口时,它定义(即将程序体给
予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上
调用接口的方法。由于有抽象
类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用
可以转换到接口类型或从接口
类型转换,instanceof
运算符可以用来决定某对象的类是否实现了接口。
6.面向对象的特征有哪些方面?
1>
.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过
程抽象,二是数据抽象。
2>.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它
提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继
承了原始类的特性,新类称为原始
类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以
从它的基类那里继承方法和实例变
量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3>.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基<
br>本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其<
br>他对象。
4>. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数
化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程
序函数同名
中如何跳出当前多重循环?用break; return 方法.
8.说出一些常用的类、包和接口,各举5个
类 String
Integer Long File Date
包 .*;.*;.*;.*;
.*;
接口: Comparable ,Connection,Map,List,Runable,
类是否可以被继承?填空并上机调试
public class test2
{
public static void main(String args[])
{int
aa[]=new int[15];n(“before entering method:”);
for(int i=0;i<5;i++)
n(“aa[“+i+”]=”+___________);__________________;
n(“after method:”);
for(int i=0;i<5;i++)
n(“aa[“+i+”]=”+aa[i]);}
Static void test( int
[] x)
{int i=10; n(“in mathod:”);
for(;i<15;i++) {x[i-10]+=i;
n(“x[“+(i-10)+”]=”+x[i-10]);}}}
运行结果:String类是final类故不可以继承.
10.填空并上机调试
public class Father
{ int a=100;
public void miner(){ a--;}
public static
void main(String args[])
{ Father
x=________________; son y=new son();
n(“The a of son is:”+y.a);
n(“The a of
son’s super is:”+_________________);
();
n(“The a of son is:”+y.a);
n(“The a of
son’s super is:”+()); }}
class
son_____________________Father
{ int a=0;
public void plus(){a++;}public int getA(){
_____________________;}}