java复习题及答案

zhaoyongu 贡献于2013-03-12

作者 CXD  创建于2002-05-22 05:54:00   修改者大唐文化  修改于2010-06-16 12:15:00字数22107

文档摘要:一、判断题(每题1分,共15分)1、Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。(1)2、接口和类一样也可以有继承关系,而且都只能支持单继承。(0)3、所有类至少有一个构造器,构造器用来初始化类的新对象,构造器与类同名,返回类型只能为void。(0)4、包是按照目录、子目录存放的,可以在程序中用package定义包,若没有package一行,则表示该文件中的类不属于任何一个包。
关键词:

一、判断题(每题1分,共15分) 1、Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。 ( 1 ) 2、接口和类一样也可以有继承关系,而且都只能支持单继承。 ( 0 ) 3、所有类至少有一个构造器,构造器用来初始化类的新对象,构造器与类同名,返回类型只能为void。 ( 0 ) 4、包是按照目录、子目录存放的,可以在程序中用package定义包,若没有package一行,则表示该文件中的类不属于任何一个包。 (0 ) 5、Java对事件的处理是采用委托方式进行的,即将需要进行事件处理的组件委托给指定的事件处理器进行处理。 ( 1 ) 6、在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在前面,子类放在后面。 ( 0 ) 7、在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员。 ( 1 ) 8、我们可以方便地编写Java客户机/服务器程序,在客户机/服务器模式中,客户机一般通过套接字(Socket)使用服务器所提供的服务,Socket由两部分组成:IP地址和端口号。 ( 1 ) 9、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。 ( 0 ) 10、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 ( 0 ) 11、当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。 (1 ) 12、如果f是父类Flower的对象,而r是子类Rose的对象,则语句f=r是正确的。(1 ) 13、Java系统的标准输入对象是System.in,标准输出对象有两个,分别是System.out和System.err。 (1 ) 14、final类中的属性和方法都必须被final修饰符修饰。 ( 0) 15、子类可以定义与父类同名的方法,称为方法的覆盖,方法覆盖要求子类的方法与父类的方法名字和参数都相同,但返回值类型可以不同。 ( 0 ) 共8页,第 页 二、单项选择题(每题2分,共30分) 1、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于( c )。 A、本地方法 B、解态方法 C、最终方法 D、抽象方法 2、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( b )。 A、 public static void main() B、 public static void main(String[ ] args) C、 public static int main(String[ ] args) D、 public void main(String arg[ ]) 3、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( c )。 A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 4、在Java applet程序中,用户自定义的Applet子类常常覆盖父类的( c )方法来完成applet界面的初始化工作。 A、start( ) B、stop( ) C、init( ) D、paint( ) 5、以下程序段执行后将有( b )个字节被写入到文件afile.txt中。 try{ FileOutputStream fos=new FileOutputStream(“afile.txt”); DataOutputStream dos=new DataOutputStream(fos); dos.writeInt(3); dos.writeDouble(0.01); dos.close(); fos.close( ); } catch(IOException e) { } A、16 B、12 C、8 D、2 6、以下代码段执行后的输出结果为( c )。 int x=-3; float y=10.0f; System.out.println(y%x); A、不能成功编译 B、-1.0 C、1.0 D、-1 7、编译并运行以下程序,以下描述哪个选项是正确的( a )。 1. class A{ 2. protected String toString(){ 3. return super.toString();} 4. } A、行2出错,不能成功编译 B、编译通过但运行时出错 C、编译通过运行无异常 D、不能成功编译,行3出错 8、假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个是错误的?( ) public class Foo { int i; static String s; void imethod() { } static void smethod() { } 共8页,第 页 } A、Foo.imethod(); B、f.imethod(); C、System.out.println(f.i); D、Foo.smethod() 9、分析下面的程序代码,以下哪个说法是正确的。( ) public class Test extends A { public static void main(String[] args) { Test t=new Test(); t.print(); } } class A { String s; A(String s) { this.s=s; } public void print() { System.out.println(s); } } A、因为Test没有构造方法Test(),所以这段程序不能编译。 B、如果删除A类中的构造方法,这个程序可以编译。 C、这段程序可以通过编译,但由于方法名冲突,引起一个运行时错误。 D、编译成功,运行情况良好。 10、类Test1定义如下: 1.public class Test1{ 2. public float aMethod(float a, float b){ } 3. 4.} 将以下哪种方法插入行3是不合法的。( ) A、public float aMethod(float a, float b,float c){ } B、public float aMethod(float c,float d){ } C、public int aMethod(int a, int b){ } D、private float aMethod(int a,int b,int c){ } 11、编译运行以下程序后,关于输出结果的说明正确的是 ( ) public class Conditional{ public static void main(String args[ ]){ int x=1; System.out.println(“value is “+ ((x<1)? 1.0 : 0)) ; } } A、输出结果为:value is 1.0 B、输出结果为:value is 0 C、输出结果为:value is 0.0 D、编译错误 12、以下说法哪项是正确的( ) 1.class MyListener 2. extends MouseAdapter implements MouseListener{ 3. public void mouseEntered(MouseEvent mev) 4. { System.out.println("Mouse entered."); } 5.} A、以上代码可通过编译 B、不能通过编译,因为没有实现MouseListener接口中的所有方法 共8页,第 页 C、不能通过编译,因为类头定义不能分行 D、能通过编译,但是若组件用该类作为Mouse事件的监听者并且接收了mouse-exited事件,则在执行过程中会抛出异常 13、编译并运行以下程序(命令:java TestClass 0),关于运行结果的描述以下哪个选项是正确的( ) class TestClass{ public static void main(String [ ] args){ long i=0; try{ i=Integer.parseInt(args[0]); }catch(Exception e){ } switch(i) {case 0: System.out.println("0"); case 1: System.out.println("1"); default : System.out.println("default"); } } } A、编译出错 B、打印出“0” C、打印出“1” D、打印出“default” 14、一个线程的run方法包含以下语句,假定线程没有被打断,以下哪项是正确的( ) 1.try{ 2. sleep(100); 3. }catch(InterruptedException e){ } A、不能通过编译,因为在run方法中可能不会捕捉到异常。 B、在第2行,线程将暂停运行,正好在100毫秒后继续运行。 C、在第2行,线程将暂停运行,最多在100毫秒内将继续运行。 D、在第2行,线程将暂停运行,将在100毫秒后的某一时刻继续运行。 15、以下哪个接口的定义是正确的?( ) A、 interface A { void print() { } ;} B、 abstract interface A { void print() ;} C、 abstract interface A extends I1, I2 //I1、I2为已定义的接口 { abstract void print(){ };} D、 interface A { void print();} 三、程序阅读题(1~8题每题4分,第9题占8分,共40分) 1、若文件test.dat不存在,则试图编译并运行以下程序时会发生什么情况? import java.io.*; class TestIO { public static void main(String[] args) { try{ RandomAccessFile raf=new RandomAccessFile("test.dat","r"); int i=raf.readInt(); } catch(IOException e){System.out.println("IO Exception"); } } } 2、以下程序的输出结果为 。 共8页,第 页 public class EqualsMethod { public static void main(String[] args) { Integer n1 = new Integer(12); Integer n2 = new Integer(12); System.out.print(n1= =n2); System.out.print(“,”); System.out.println(n1! =n2); } } 3、以下程序的输出结果为 。 class LabelBreak{ public static void main(String[] args) { int x=20; Label1: { System.out.print(“one,”); if ( x>10) break Label1; System.out.print(“two,”); } System.out.println(“three”); } } 4、阅读以下程序: import java.io.* ; public class Reverse { public static void main(String args[ ]) { int i , n =5 ; int a[ ] = new int[5]; for ( i = 0 ; i < n ; i++ ) try { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); a[i] = Integer.parseInt(br.readLine( )); } catch ( IOException e ) { } ; for ( i = n-1 ; i >= 0 ; i -- ) System.out.print(a[i]+" "); System.out.println( ); } } 若输入: 1 2 7 4 5 则以上程序段的输出结果为 。 5、写出以下程序的功能。 import java.io.*; class FileApp{ public static void main(String[ ] args) throws IOException{ int b; FileInputStream fileIn=new FileInputStream(“newfile.java”); while((b=fileIn.read())!=-1){ System.out.print((char)b); } } } 6、以下程序的输出结果为 。 class Test{ static int num; 共8页,第 页 int c; public Test( ){ num++; } public static void main(String[ ] args){ System.out.print(x.num); Test x=new Test(); System.out.print(x.num); Test x=new Test(); System.out.println(x.num); } } 7、以下程序的输出结果为 。 class Mug { Mug(int marker) { System.out.println("Mug(" + marker + ")"); } void f(int marker) { System.out.println("f(" + marker + ")"); } } public class Mugs { Mug c1; { c1 = new Mug(1); System.out.println("c1 initialized"); } Mugs() { System.out.println("Mugs()"); } public static void main(String[] args) { System.out.println("Inside main()"); Mugs x = new Mugs(); } } 8、以下程序的输出结果为 。 class A{ public A(){ System.out.print(“ A ”); } } public class B extends A{ public B(){ System.out.print(“ B ”); } public static void main(String[ ] args){ new B( ); } } 9、阅读以下程序段,假定服务器端和客户端程序正常运行无异常发生,请回答以下问题: ①描述程序功能。(4分) ②假定在客户端输入2.0,请写出服务器端的输出结果。(4分) //服务器端程序 import java.io.*; import java.net.*; public class Server { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8000); 共8页,第 页 Socket connectToClient = serverSocket.accept(); DataInputStream isFromClient = new DataInputStream( connectToClient.getInputStream()); DataOutputStream osToClient = new DataOutputStream( connectToClient.getOutputStream()); while (true) { double value = isFromClient.readDouble(); System.out.println("value received from client: " +value); double result = value*value; osToClient.writeDouble(result); osToClient.flush(); System.out.println("result: " + result); } } catch(IOException ex) { System.err.println(ex); } } } //客户端程序 import java.io.*; import java.net.*; public class Client { public static void main(String[] args) { try { Socket connectToServer = new Socket("localhost", 8000); DataInputStream isFromServer = new DataInputStream( connectToServer.getInputStream()); DataOutputStream osToServer = new DataOutputStream(connectToServer.getOutputStream()); while (true) { System.out.print("Please enter a double value: "); double value=Double.parseDouble( new BufferedReader(new InputStreamReader(System.in),1).readLine()); osToServer.writeDouble(value); osToServer.flush(); double result = isFromServer.readDouble(); System.out.println("result received from the server is "+ result); } } catch (IOException ex) { System.err.println(ex); } } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 √ × × × √ × √ √ × × √ √ √ × × 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 C B C C B C A A B B C A A D D 1 程序发生异常,捕获异常后并输出: IO Exception 2 false,true 3 one,three 4 5 4 7 2 1 5 显示输出文件newfile.java的内容 6 012 7 Inside main() Mug(1) c1 initialized Mugs() 8 A B 共8页,第 页 9 ①客户端发送一个实数,服务器端接收并计算该数的平方,然后将求得的平方值发回至客户端显示。客户端可继续向服务器发送直至有一方退出。(4分) ②value received from client: 2.0 result found: 4.0(4分) 1、在java中如果声明一个类为final,表示什么意思? 答:final是最终的意思,final可用于定义变量、方法和类但含义不同,声明为final的类不能被继承。 2、父类的构造方法是否可以被子类覆盖(重写)? 答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。 3、请讲述String 和StringBuffer的区别。 答:String 类所定义的对象是用于存放“长度固定”的字符串。 StringBuffer类所定义的对象是用于存放“长度可变动”的字符串。 4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢? 答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。 5、结合Java视频Lesson5(多线程),分析sleep()和wait()方法的区别。 答: Sleeping睡眠的意思 : sleep() 方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。 waiting等待的意思: 如果调用了 wait() 方法,线程将处于等待状态。用于在两个或多个线程并发运行时。 6、谈谈你对抽象类和接口的理解。 答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。他使用extends来继承。 接口:一个接口允许一个类从几个接口继承而来,Java 程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是interface来实现。 共8页,第 页 7. Java的接口和C++的虚类的相同和不同处。   由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是 public static,所有方法默认情况下是public.一个类可以实现多个接口。 8. 垃圾回收的优点和原理。并考虑2种回收机制。   Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。 9.谈谈final, finally, finalize的区别。   Final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。   Finally-再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。   Finalize-方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 共8页,第 页 10.数组有没有length()这个方法? String有没有length()这个方法?举例说明使用方法?   数组没有length()这个方法,有length的属性。   String有有length()这个方法。 11. Java中的异常处理机制的简单原理和应用。   当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发 NullPointerException.另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用 throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(   B   )。          A.    .java                      B.    .class          C.    .html                      D.    .exe 2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A    )。          A.    3                        B.    3. 5          C.    4                        D.    5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的(   D   )方法来完成一些画图操作。     A.   start( )                    B.   stop( )     C.   init( )                     D.   paint( ) 4、不允许作为类及类成员的访问控制符的是(   C   )。     A.   public                    B.   private     C.   static                     D.   protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(    A )。     A. static void method( )                    B. public void method( )        C. final void method( )                      D. abstract void method( ) 二、填空题(每空格1分,共20分) 1、开发与运行Java程序需要经过的三个主要步骤为 、 共8页,第 页 和 。 2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 类的子类并且存储该源程序文件的文件名为 。 3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译 器 编译该源程序文件将产生 个文件名与类名相同而扩展名为 的字节码文件。 4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用 字节内存空间,这样,无论是中文字符还是英文字符,都是占 用 字节内存空间。 5、设 x = 2 ,则表达式 ( x + + )/3 的值是 。 6、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为 和 。 7、 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 方法是不能被当前类的子类重新定义的方法。 8、创建一个名为 MyPackage 的包的语句是 , 该语句应该放在程序的位置为: 。 9、执行以下几个语句后的输出结果是 。 String s = “This one” , s1=”This two”; int i=5 if (i>10) System.out.print(s) ; else System.out.print(s1) ; 10、在Java程序中,通过类的定义只能实现    重继承,但通过接口的定义可以实现    重继承关系。 一、单选择题(每小题2分,共10分) 1、B     2、A     3、D     4、C     5、A 二、填空题(每空格1分,共20分) 1、编辑源程序、编译生成字节码、解释运行字节码 2、Applet、MyApplet 3、javac.exe、3、 . class 4、2 、2 5、0 共8页,第 页 6、true 、 false 7、抽象(abstract)方法、最终(final)方法 8、package MyPackage ; 应该在程序第一句。 9、This two 10、单、多 Applet就是使用Java语言编写的一段代码,它可以在浏览器环境中运行。它与Application的区别主要在于其执行方式的不同。application 是从其中的main() 方法开始运行的,而Applet 是在浏览器中运行的,必须创建一个HTML 文件,通过编写HTML 语言代码告诉浏览器载入何种Applet 以及如何运行。 Java语言程序设计”期末复习题(含答案) 一.判断题 由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 ( × ) 注释的作用是使程序在执行时在屏幕上显示//之后的内容。 ( ×) Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 (√) java异常处理中可以使用多个catch子句,此时应将高级别异常类的catch子句放在前面。 (×) Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。(× ) 创建Vector对象时构造函数给定的是其中可以包容的元素个数,使用中应注意不能超越这个数值。 (×) 静态初始化器是在其所属的类加载内存时由系统自动调用执行。 (√) Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。 (√ ) 设String对象s=”H”,运行语句System.out.println(s.concat(“ello!”));后String对象s的内容为”Hello!”,所以语句输出为”Hello!”。 (× ) 共8页,第 页 在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。 (×) 无论Java源程序包含几个类的定义,若该源程序文件以B.java命名,编译后生成的都只有一个名为B的字节码文件。 (×) 即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。 (√) Java的各种数据类型所占用的内存长度与具体软硬件环境有关。 (×) 在Java的方法中定义一个常量要用const关键字。 (×) Java的类不允许多重继承,但接口支持多重继承。 (√) 所谓抽象类就是包含有抽象方法的类。 (×) 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。 (×) 程序员可以不必释放已创建的对象,因为Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。 (×) Java语言中的数组元素只能是基本数据类型而不能为对象类型。 (×) 构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。 (×) 在Java中%是取余运算符,要求两端操作数为整型。 (× ) Java有两类程序:Java Application和Java Applet,其中Java Applet程序只能在图形界面中工作,而Java Application程序只能在字符界面中工作 。 ( ×) Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。 (√) 一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。 (√) 二.单项选择题 1.在浏览器中执行applet 程序,以下选项中的哪个方法将被最后执行( C )。 A、init() B、start() C、destroy() D、stop() 2. Java application中的主类需包含main方法,main方法的返回类型是什么?( D ) A、int B、float C、double D、void 3.有以下方法的定义,请选择该方法的返回类型( D )。 ReturnType method(byte x, float y) { return (short)x/y*2; } A、byte B、short C、int D、float 4.设有下面两个类的定义: class Person { class Student extends Person { 共8页,第 页 long id; // 身份证号 int score; // 入学总分 String name; // 姓名 int getScore(){ } return score; } } 则类Person和类Student的关系是( B )。 A、包含关系 B、继承关系 C、关联关系 D、上述类定义有语法错误 5.以下哪个关键字可以用来对对象加互斥锁?( C ) A、transient B、serialize C、synchronized D、static 6.在编写Java Applet程序时,需要在程序的开头写上( B )语句。 A、import java.awt.* ; B、import java.applet.* ; C、import java.io.* ; D、import java.awt.event.* ; 7.容器Panel和Applet缺省使用的布局编辑策略是( A ) A、FlowLayout B、BorderLayout C、GridLayout D、CardLayout 8.以下声明合法的是( B ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final int hyperbolicCosine( ) 9.以下程序段执行后将有( C )个字节被写入到文件afile中。 try{ FileOutputStream fos=new FileOutputStream(“afile.txt”); DataOutputStream dos=new DataOutputStream(fos); dos.writeInt(3); dos.writeDouble(0.01); dos.close(); fos.close( ); } catch(IOException e) { } 共8页,第 页 A、2 B、8 C、12 D、16 10.编译并运行以下程序,以下描述哪个选项是正确的( C )。 1. class ATestOftoString{ 2. protected String toString(){ 3. return super.toString();} 4. } A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译 D、不能成功编译,行3出错 11.有以下程序片段,下列哪个选项不能插入到行1。( A ) 1. 2.public class A{ 3.//do sth 4. } A、public class MainClass{ } B、package mine; C、class ANotherClass{ } D、import java.util.*; 12.在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。 A、private B、protected C、private protected D、public 13.以下哪个不是Java的关键字?( A ) A、FALSE B、const C、this D、void 14.关于以下application的说明,正确的是( C )。 1. class StaticStuff 2. { 3. static int x; 4. static { x+=5;} 5. public static void main(String args[ ]) 6. { 7. System.out.println(“x=” + x); 8. } 共8页,第 页 9. static { x/=5;} 10.} A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=1 D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化 15.有程序如下,关于程序的描述哪个是正确的?( C ) public class Person{   static int arr[] = new int[5];   public static void main(String a[])   {   System.out.println(arr[0]);  } } A、编译将产生错误 B、编译时正确,但运行时将产生错误 C、正确,输出0 D、正确,输出 null 16.类ABC定义如下: 1.public class ABC{ 2. public int max( int a, int b) { } 3. 4.} 将以下哪个方法插入行3是不合法的。( B ) A、public float max(float a, float b, float c){ } B、public int max (int c, int d){ } C、public float max(float a, float b){ } D、private int max(int a, int b, int c){ } 17.以下关于构造函数的描述错误的是( A )。 A、构造函数的返回类型只能是void型。 B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 共8页,第 页 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 18.有语句String s=”hello world”; ,以下操作哪个是不合法的?( A ) A、s>>>=1; B、int i=s.length(); C、String ts=s.trim(); D、String t=s+”!”; 19.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( A )。 A、init() B、start() C、destroy() D、stop() 20.有程序片段如下,以下哪个表示式的结果为true?( B ) Float s=new Float(0.1f); Float t=new Float(0.1f); Double u=new Double(0.1); A、s==t B、s.equals(t) C、u.equals(s) D、t.equals(u) 21.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用( B )个比特位。 A、8 B、16 C、32 D、64 22.以下哪项可能包含菜单条( B )。 A、Panel B、Frame C、Applet D、Dialog 23.paint()方法使用哪种类型的参数? ( A ) A、Graphics B、Graphics2D C、String D、Color 24.以下哪个方法用于定义线程的执行体? ( C ) A、 start() B、init() C、run() D、synchronized() 25.当浏览器暂时离开含applet 程序的页面时,以下选项中的哪个方法将被执行?( D ) A、init() B、start() C、destroy() D、stop() 26.下面哪个不是Java中的容器? ( A ) A、Canvas B、ScrollPane C、Applet D、Dialog 27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )。 A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 28.编译Java Applet 源程序文件产生的字节码文件的扩展名为( B )。 共8页,第 页 A、java B、class C、html D、exe 29.下面哪个方法与applet的显示无关?( A ) A、draw() B、 update() C、repaint() D、paint() 30.编译并运行以下程序,以下描述哪个选项是正确的( C ) 1. class A{ 2. protected boolean equals(){ 3. return super.equals();} 4. } A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译 D、不能成功编译,行3出错 31.以下自定义标识符中哪项是不合法的( A ) A、const B、$double C、hello D、BigMeaninglessName 32.有如下代码段: 1) 2) { if(unsafe()){//do something…} 3) else if(safe()){//do the other…} 4) } 其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( D ) A、public IOException methodName() B、public void methodName() C、public void methodName() throw IOException D、public void methodName() throws IOException 33.类Test1、Test2定义如下: 1. public class Test1 2.{ public float aMethod(float a,float b) throws 3. IOException { } } public class Test2 extends Test1{ 共8页,第 页 6. 7.} 将以下哪种方法插入行4是不合法的。( A ) float aMethod(float a,float b){ } public int aMethod(int a,int b)throws Exception{ } public float aMethod(float p,float q){ } public int aMethod(int a,int b)throws IOException{ } 34.以下哪个接口的定义是正确的?( D ) interface B { void print() { } ;} abstract interface B { void print() ;} abstract interface B extends A1,A2 //A1、A2为已定义的接口 { abstract void print(){ };} interface B { void print();} 35.下面哪个函数是public void aMethod(){...}的重载函数?( D ) A、void aMethod( ){...} B、public int aMethod(){...} C、public void aMethod ( ){...} D、public int aMethod ( int m){...} 36.A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明: A a0=new A(); A a1 =new B(); A a2=new C(); 问以下哪个说法是正确的? ( D ) A、只有第1行能通过编译 B、第1、2行能通过编译,但第3行编译出错 C、第1、2、3行能通过编译,但第2、3行运行时出错 D、第1行、第2行和第3行的声明都是正确的 37.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C ) class A 共8页,第 页 { int i; static String s; void method1() { } static void method2() { } } A、System.out.println(a.i);B、a.method1(); C、A.method1(); D、A.method2() 38.下列哪些语句关于Java内存回收的说明是正确的? ( B ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 39.以下关于继承的叙述正确的是( A )。 A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承 40.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( D )语句。 A、import java.awt.* ; B、import java.applet.* ; C、import java.io.* ; D、import java.awt.event.* ; 1 √ Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。 2 √ Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。 3 × Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 4 共8页,第 页 × Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。 5 × 构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。 6 √ 在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。 7 √ 拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。 8 × Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。 9 √ 静态初始化器是在其所属的类加载内存时由系统自动调用执行。 10 × 在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。 11 × Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。 12 × 所有的鼠标事件都由MouseListener监听接口的监听者来处理 13 √ Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 14 √ 如果p是父类Parent的对象,而c是子类Child的对象,则语句p=c是正确的 15 × 由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 16 × 注释的作用是使程序在执行时在屏幕上显示//之后的内容。 共8页,第 页 17 √ Java的各种数据类型占用的内存长度固定,与具体软硬件环境无关。 18 × 无论Java源程序包含几个类的定义,若该源程序文件以B.java命名,编译后生成的都只有一个名为B.class的字节码文件。 19 √ 即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参函数,函数体为空。 20 × 在Java的方法中定义一个常量要用const关键字。 21 √ abstract方法所在的类必须是abstract类。 22 × 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。 23 √ 一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。 24 × Java的各种数据类型所占用的内存长度与具体软硬件环境有关 25 √ 若Java源程序中包含了几个类的定义,则编译后就生成对应的几个字节码文件。 26 × 在Java中%是取余运算符,要求两端操作数为整型。 27 × 构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。 28 √ Java的类不允许多重继承,但接口支持多重继承。 共8页,第 页 29 × 所谓抽象类就是包含有抽象方法的类。 30 × Java语言中的数组元素只能是基本数据类型而不能为对象类型。 31 √ Java有两类程序:Java Application和Java Applet,其中Java Applet程序由嵌入到浏览器中的解释器解释运行。 33 × 构造方法是一种特殊的方法,名字与类名一致,但返回类型都为void型。 34 × 无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件。 35 × 在不同的软硬件平台上,Java的各种数据类型所占用的内存长度不同,因此程序的可移植性不强。 36 √ Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。 37 × 抽象类里一定要包含抽象方法,但含抽象方法的类未必是抽象类。 38 √ Java源程序文件应以.java为后缀名保存,文件内包含几个类的定义就编译生成几个对应的字节码文件。 39 × java异常处理中可以使用多个catch子句,此时应将高级别异常类的catch子句放在前面。 共8页,第 页 简答类: 【1】、简单变量、引用变量的拷贝功能分别是如何实现的。 简单变量,必须先对变量赋初值,然后直接通过将这个变量赋给另一个变量实现复制功能; 引用变量,需要为对象编写Clone函数,并调用Clone函数来复制一个对象。 【2】、简述String与StringBuffer的区别。 String类用于字符串常量,字符串的值不会改变;(即如果你编写一个函数,函数参数之一是字符串,且函数中不会对字符串有任何改变则用String) StringBuffer类用于字符串变量,字符串的值可以改变(即如果函数中的一个局部变量是字符串变量,且值会改变,用StringBuffer来动态地组织字符串) String执行效率比StringBuffer高 【3】、简述抽象类与接口异同点。 共同点:都定义了一组抽象的函数,而没有具体实现 异同点:1.接口不能有任何函数的实现过程,而抽象类可以有2.一个类可以实现很多接口,但只有一个父类3.接口不是类层次关系中的一部分,两个彼此无关的类也可以实现同一个接口 【4】、简述Java小程序的生命同期中的载入、运行、离开、卸载、重载等几个阶段分别调用了哪些方法。 载入:public void init(); 运行:public void start(); 离开:public void stop(); 卸载:public void destroy(); 重载:destroy and init start or init 【5】、简述事件处理需要哪些步骤。第一步:为每个事件定义一个事件处理类,在类的定义中要指明类实现了哪个监听器的接口, 或者这个类是从哪个实现监听器接口的类继承而来 第二步:事件处理类的一个实例对象注册为组件的一个监听器 第三步:编写代码实现监听器接口的函数 共8页,第 页 【6】、char型变量中能不能存储一个汉字,为什么?可以存储。因为一个汉字占2字节,Java的字符型变量是16位Unicode字符,刚好存储一个汉字。 【7】、在java中实现多线程有几种方法,这些方法中主要步骤是什么。两种方法(1)1.创建线程类,它继承自Thread类2.告诉线程类做什么,在主程序中创建线程对象,在Main方法里创建3.启动线程,通过调用线程对象的start函数实现(2)1.让普通的类实现Runnable接口,并实现这个接口的函数2.创建一个线程(Thread)对象,在线程对象的构造函数中给出普通类的对象3.调用线程对象的start函数,线程对象会启动线程,并且在该线程中运行普通类的函数 【8】、简述try{……}catch( ){……}catch( ){……}结构的工作过程。异常是通过try….catch块来捕获的(1) try将一块可能发生异常的代码包起来,在执行这段代码时,一旦出现异常就跳出try块(2) 然后进入后面的catch部分,逐一比较异常类型是否与catch中的异常类型相符,若符合则进入catch块内的异常处理程序,最后跳出整个try….catch 【9】、简述实现文件读写功能的步骤。 1、创建文件操作对象 2、.用文件对象来创建文件的读写对象3、行读写操作4、关闭对象 【10】、描述用public,protected,private修饰的方法分别能否被同类、同包不同类、子类所访问到。Public:被同类、同包不同类、子类所访问到Protected:被同类、同包不同类、子类所访问到Private:被同类所访问到 【11】、简述用Swing创建图形界面的基本步骤。1.创建框架2.创建面板3.创建主键把主键添加到面板上4.将面板添加内容到窗体上5.显示窗体 1、有一个Animal类,它里面定义了 void eat()、void breath()两个方法,方法体自己设计,从Animal类派生出Fish、Cat类,要求在main方法中有Fish、Cat类的对象调用父类Animal中的两个方法。 class Fish extends Animal { } class Cat extends Animal { } public class Animal { void eat() { System.out.println("eat方法"); } void breath() { System.out.println("breath方法");} public static void main(String[] args) { Fish afish = new Fish(); Cat acat = new Cat(); afish.eat(); acat.breath(); }} 2、设计代码实现自定义异常的处理。 class MyException extends Exception { public MyException() { } public MyException(String msg) { super(msg); 共8页,第 页 }} public class ExceptionDemo { int add(int a, int b) throws MyException { if(a>10) throw new MyException("参数a过大"); return a + b; } public static void main(String[] args) { ExceptionDemo demo = new ExceptionDemo(); int a, b, c; a = 30; b = 50; try { c = demo.add(a, b); System.out.println(a + "加" + b + "等于:" + c); } catch (MyException e) { System.out.println("程序出现自定义异常MyException。"); System.out.println(e.getMessage()); } finally { System.out.println("程序结束。"); } } } 3、从文件 D:\java\data.txt 中读出数据,将其保存在 D:\java\dest.txt文件中,并将内容显示在屏幕上。 import java.io.*; public class IOTest1 { public static void main(String[] args) throws IOException { File file1 = new File("D:\\java\\data.txt"); File file2 = new File("D:\\java\\dest.txt"); FileReader reader1 = new FileReader(file1); FileWriter writer1 = new FileWriter(file2); int c; c = reader1.read(); while (c != -1) { writer1.write©; System.out.print((char)c); c = reader1.read(); } reader1.close(); writer1.close(); }} 4、至少实现求面积方法 eara()的两次重载。 共8页,第 页 public class Eara { public void eara(int height, int width) { int totaleara; totaleara = height * width; System.out.println("面积是:"+totaleara); } public void eara(double height, double width) { double totaleara; totaleara = height * width; System.out.println("面积是:"+totaleara); } public static void main(String[] args) { Eara a = new Eara(); a.eara(3, 5); a.eara(3.2, 5.8); }} 5、设计代码实现整型数值“123”到字符串的转换,以及字符串“456”到数值的转换。 public class convertnum { public static void main(String[] args) { int i = 123; String str1; str1 = Integer.toString(i); System.out.println("数值转换成字符串:" + str1); str1 = "456"; Integer strval; strval = Integer.valueOf(str1); i = strval.intValue(); System.out.println("字符串转换成数值:" + i); } } 【本文来自】:网维技术论坛(http://wangwei.5d6d.com) 【详细参考】:原文地址-http://wangwei.5d6d.com/thread-379-1-1.html 共8页,第 页

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档