收藏 分销(赏)

Java考试题.doc

上传人:仙人****88 文档编号:11399108 上传时间:2025-07-21 格式:DOC 页数:4 大小:59KB 下载积分:10 金币
下载 相关 举报
Java考试题.doc_第1页
第1页 / 共4页
Java考试题.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
Java考试题 1. 前面的题答在WORD文档中, 编程题需要单独提交源文件, 不要答在WORD文档中. 2. 注意时间分配, 编程题中的第三题较难. 一、(共15分) 简要解释下列关键字的含义,并说明其在编程中的特点; static , final , protected , abstract , interface . Static:静态的意思,修饰的变量,叫静态变量,修饰的方法叫静态方法。 静态变量在类被载入的时候创建,只要类存在,static变量就存在。被各实例变量所共享类似于全局变量。局部变量(函数内部的变量)不可以是静态的。在使用的时候可以和非静态变量一样被对象访问。也可以直接用类名来访问。类名.静态成员变量。对象名.静态成员变量 静态方法在类被载入的时候创建,可以用类名访问,也可以用实例访问。各实例共享,在静态方法中只能直接调用同类中其他静态成员(方法,变量)。不可以直接访问类中的非静态成员。因为,非静态的成员需要创建对象后才能用,而静态成员则不需要。静态方法不可以使用this和super关键字。Main方法是静态的,因此JVM在执行main方法时不创建main方法所在的类的实例对象,因而在main方法中,不能直接访问该类的非静态成员。必须创建该类的一个实例对象后,才能通过这个对象去访问。 静态代码:不包含在任何方法体中 当类被载入时,执行该代码有且只执行一次,一般用来初始化成员 Final:最终的意思。 用来修饰类,则类不可以被继承 用来修饰方法,则方法不可以被重写 用来修饰变量,则变量成为常量,不可以赋值 方法中定义的内部类 内部类同样可以定义在方法中 在方法中定义的内部类只能访问方法中的final类型的局部变量,因为用final定义的局部变量相当与是一个常量,其生命周期超出方法运行的生命周期 Protected:保护的意思,用于设置访问权限,可以修饰类、成员变量、成员方法。 用来修饰类,变量,方法都可以被继承。 访问权限顺序是public、protected、友好的(缺省的)、private 用 Protected 关键字声明的结构具有受保护的访问权限 。 Abstract:抽象的意思。可以修改类、成员方法。 类用abstract修饰,方法也用abstract修饰,不能实例化,抽象方法只需声明,不需实现,抽象方法只能存在于抽象类中或接口中,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则,子类还属于抽象类,抽象类中可以存在非抽象方法。 Interface:定义接口的关键字。 首先接口实现了JAVA中的多继承机制。 类要实现某个接口用implements关键字,在类的定义中给出接口中所有所定义方法的实际实现。接口中的方法和变量都是(自动)public的。对于变量,自动(且只能)为static final成员变量,即常量。一个类可以实现多个接口。 二、简答题(共35分) 1.JAVA中的垃圾回收机制相当于C++的析构方法。主要有finalize()方法和System.gc()方法实现。当一个对象变成垃圾,他所引用的其他对象在没有别的有效的句柄引用的话,也就会变成垃圾。这个时候不需要程序员去释放对象所占的内存空间,系统会自动调用finalize()方法。但有的时候,需要清理垃圾的,而finalize()方法没有被自动调用,我们引入System.gc()方法,他可以人为的强制去清理垃圾,这样使我们更加方便。 所谓同名现象是指两个或多个变量同时指向同一内存地址。同名现象清理垃圾时要等到所有变量都释放指到的这一内存地址,才可以回收该内存空间。可以使用System.gc()方法实现。 2.Value类的equals是继承Object类的方法,该方法默认是比较两个地址,所以 System.out.println(n1.equals(n2))的结果是false。只有在Value类重写equals方法。class Value{ int i; public boolean equals(Value v) { return v.i==i; } } 3.(1)首先将Find类、NewFind类的public修饰符去掉。 (2)public void f(){System.out.println("Find.f()")};该方法的结束没有“;”应该把“;”放到“}”前边。如: public void f(){System.out.println("Find.f()");} (3)public void f(long i){this.i=i;}方法中的i变量继承于Find类的i变量,而Find类的i变量是private,所以不能继承。而且类型是int型,当前传来的参数i是long型,类型也不匹配。首先把Find类的i变量的修饰副改为除了private以外都可以,把public void f(long i){this.i=i;}中形参i的类型改成int. (4)public class FindErrors extends Find{ public void f2(Find ff){ if(ff instanceof NewFind){ ff.f1(); ff.f(); } } 上面的f2方法,不能写ff.f1();因为ff句柄得到是其子类的实例,只能调用他们两个所共有的方法。而f1方法是子类NewFind自己独有的。把ff.f1()去掉就可以了。 正确代码如下: class Find{ public int i; public void f(){System.out.println("Find.f()");} } class NewFind extends Find{ public void f(){System.out.println("NewFind.f()");} public void f1(){System.out.println("NewFind.f1()");} public void f(long i){this.i=(int)i;} } public class FindErrors extends Find{ public void f2(Find ff){ if(ff instanceof NewFind){ ff.f(); } } public void main(String args) { NewFind nf=new NewFind(); f2(nf); } } 二、简答题(共35分) 1. 什么是内存垃圾收集机制,在同名现象中内存垃圾收集机制是如何参与的?(10分) 2.有一段代码,如下所示。程序运行的结果为什么为false?如何通过override修改Value类,使结果为true?(15分) //Equals2.java class Value{ int i; } public class Equals2 { public static void main(String[] args) { Value n1=new Value(); Value n2=new Value(); n1.i=100; n2.i=100; System.out.println(n1.equals(n2)); } } 3.改错:在FindErrors.java文件的代码如下。请改错。(10分) public class Find{ private int i; public void f(){System.out.println("Find.f()")}; } public class NewFind extends Find{ public void f(){System.out.println("NewFind.f()");} public void f1(){System.out.println("NewFind.f1()");} public void f(long i){this.i=i;} } public class FindErrors extends Find{ public void f2(Find ff){ if(ff instanceof NewFind){ ff.f1(); ff.f(); } } public void main(String args) { NewFind nf=new NewFind(); f2(nf); } } 三、编程题(共50分) 要求:1. 提交单独的源文件, 不要答在word文档中. 2. 能够运行, 得分高; 能够完全实现功能,得满分. 3. 注意时间分配, 第三题较难 1.用程序实现三角形的输出。要求:(1) 能从命令行参数读取三角形的高度。(15分) 例子:java example 5 (2) 实现自定义的例外 * (3) 能进行例外处理。 *** ***** ******* ********* 2.用程序实现仿记事本的程序。要求:能使用菜单读取用户选定的文本文件并显示到文本区域,支持文本文件的保存和另存(save as)。(15分) 3. 实现一个多线程socket服务器,至少能接受两个client的连接。(20分)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服