文档库 最新最全的文档下载
当前位置:文档库 › Java复习题及答案

Java复习题及答案

Java复习题及答案
Java复习题及答案

一、判断题(每题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 )

二、单项选择题(每题2分,共30分)

1、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于( c )。

A、本地方法

B、解态方法

C、最终方法

D、抽象方法

2、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( b )。

A、p ublic static void main()

B、public static void main(String[ ] args)

C、public static int main(String[ ] args)

D、p ublic 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(){//tostring 只适用于对象的调用

3. return super.toString();}

4. }

A、行2出错,不能成功编译

B、编译通过但运行时出错

C、编译通过运行无异常

D、不能成功编译,行3出错

8、假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个是错误的?(A )

public class Foo

{ int i;

static String s;

void imethod() { }

static void smethod() { }

}

A、Foo.imethod();

B、f.imethod();

C、System.out.println(f.i);

D、Foo.smethod()

9、分析下面的程序代码,以下哪个说法是正确的。(B )

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是不合法的。(B )

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、编译运行以下程序后,关于输出结果的说明正确的是( C )

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、以下说法哪项是正确的( A )

1.class MyListener

2.extends MouseAdapter implements MouseListener{

3.public void mouseEntered(MouseEvent mev)

4.{ System.out.println("Mouse entered."); }

5.}

A、以上代码可通过编译

B、不能通过编译,因为没有实现MouseListener接口中的所有方法

C、不能通过编译,因为类头定义不能分行

D、能通过编译,但是若组件用该类作为Mouse事件的监听者并且接收了mouse-exited事件,则在执行过程中会抛出异常

13、编译并运行以下程序(命令:java TestClass 0),关于运行结果的描述以下哪个选项是正确的( A )

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方法包含以下语句,假定线程没有被打断,以下哪项是正确的(D )

1.try{

2.sleep(100);

3.}catch(InterruptedException e){ }

A、不能通过编译,因为在run方法中可能不会捕捉到异常。

B、在第2行,线程将暂停运行,正好在100毫秒后继续运行。

C、在第2行,线程将暂停运行,最多在100毫秒内将继续运行。

D、在第2行,线程将暂停运行,将在100毫秒后的某一时刻继续运行。

15、以下哪个接口的定义是正确的?( D )

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不存在,则试图编译并运行以下程序时会发生什么情况?

发生异常输出IO Exception

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

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

则以上程序段的输出结果为54721 。

5、写出以下程序的功能。显示输出文件newfile.java的内容

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、以下程序的输出结果为123 。

class Test{

static int num;

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 https://www.wendangku.net/doc/a79180683.html,.*;

public class Server

{ public static void main(String[] args)

{ try

{ ServerSocket serverSocket = new ServerSocket(8000);

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 https://www.wendangku.net/doc/a79180683.html,.*;

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、在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来实现。

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()方法是在垃圾收集器删除对象之前对这个对象调用的。

10.数组有没有length()这个方法?String有没有length()这个方法?举例说明使用方法?

数组没有length()这个方法,有length的属性。

String有有length()这个方法。

11. Java中的异常处理机制的简单原理和应用。

当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException.另一种情况就是JAVA允许程序员扩展这种语义

检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是https://www.wendangku.net/doc/a79180683.html,ng.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. s top( )

C. init( )

D.

paint( )

4、不允许作为类及类成员的访问控制符的是( C )。

A. public

B. pri vate

C. static

D. p rotected

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程序需要经过的三个主要步骤为编辑源程序、

编译生成字节码和解释运行字节码。

2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet

必须是 Applet 类的子类并且存储该源程序文件的文件名为

MyApplet 。

3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译

器 java.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。

4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占

用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占

用 2 字节内存空间。

5、设 x = 2 ,则表达式 ( x + + )/3 的值是 0 。

6、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为 true 和 false 。

7、抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终方法是不能被当前类的子类重新定义的方法。

8、创建一个名为 MyPackage 的包的语句是 package 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

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!”。(×)

在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 {

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) { }

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.}

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、构造函数是类的一种特殊函数,它的方法名必须与类名相同。

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 )。

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{

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

{ 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

×

Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。

5

×

构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。

6

在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。

7

拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。

8

×

Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。

9

静态初始化器是在其所属的类加载内存时由系统自动调用执行。

10

×

在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象

java基础笔试测试题与答案

Java 一章至五章考试 一. 填空题(8 分) 1. 面向对象的三大原则是( 封装),( 继承) 和( 多态).2 分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数).2 分 3. ( 实体) 方法和( 构造) 方法不能修饰为abstract ?2分 二.选择题(60 分) 1) 在Java 语言中,下列(a,d )是不满足命名规范的变量名。(选择二项) a) 姓名 b) $Name c) _instanceof d) instanceof 2) 下列Java 代码片段的输出结果是( a ) 。 char c='a'; int i=c; float f=i; byte b=(byte)c; System.out.println(c+","+i+","+f+","+b); a) 编译错误 b) a,97,97,97 c) a,97,97.0,97 d) a,97,97.0f,97 3) 下列Java 代码中,空白处的代码是(b,c )。( 选择两项) public interface Fee{ public float calLabFee(float unitPrice, float time); } public class FeeImpl implements Fee { public float calLabFee(float unitPrice, float time){ return unitPrice * time; } } public class FeeInterfaceTest { public static void main(String[] args){ ________________ Float labFee = fee.calLabFee(400.00,5); } }

java期末考试复习题及答案(1)

《Java程序设计》课程试卷 1.使用Java语言编写的源程序保存时的文件扩展名是( B )。 (A).class (B).java (C).cpp (D).txt 2.设int a=-2,则表达式a>>>3的值为( C )。 (A)0 (B)3 (C)8 (D)-1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。 (A)a[0]; (B)a[]; (C)a[3]; (D)int i=1; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( D )。 (A)封装(B)继承(C)覆盖(D)重载 5.在类的定义中构造函数的作用是( D )。 (A)保护成员变量(B)读取类的成员变量(C)描述类的特征(D)初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( B )。 (A)try (B)break (C)catch (D)finally 7.类与对象的关系是( A )。 (A)类是对象的抽象(B)对象是类的抽象(C)对象是类的子类(D)类是对象的具体实例 8.下面哪一个是Java中不合法的标识符( D )。 (A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( C )。 (A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 源文件和编译后的文件扩展名分别为( B ) (A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java 12.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 (A) start( ) (B) stop( ) (C) init( ) (D) paint( ) 13.对于一个Java源文件,import, class定义以及package正确的顺序是: ( A ) (A) package,import,class (B) class,import,package (C) import,package,class (D) package,class,import 14.下面哪个是非法的:( D ) (A) int I = 32; (B) float f = ; (C) double d = ; (D) char c = ‘u’;如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是( C ) (A) public (B) protected (C) private (D) static 17.下面关于main方法说明正确的是( B ) (A) public main(String args[ ]) (B) public static void main(String args[ ]) (C) private static void main(String args[ ]) (D) void main() 18.哪个关键字可以对对象加互斥锁( B ) (A) transient (B) synchronized (C) serialize (D) static 19.关于抽象方法的说法正确的是( D ) (A)可以有方法体 (B) 可以出现在非抽象类中 (C) 是没有方法体的方法(D) 抽象类中的方法都是抽象方法 包的File类是( B ) (A)字符流类(B) 字节流类 (C) 对象流类 (D) 非流类 21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参( B ) A、 String args B、String args[] C、Char arg D、StringBuffer args[] 22.以下代码段执行后的输出结果为( A ) i nt x=-3; int y=-10; 、-1B、2 C、1 D、3 23.以下关于继承的叙述正确的是()。

Java笔试题及答案

Java笔试题及答案 一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。 package net.study; public class TestConStructor { public TestConStructor() {

} public void TestConStructor() { } public static void main(String[] args) { TestConStructor testConStructor = new TestConStructor(); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 详解: java 中没有<> := 这种运算符,if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是()

Java复习题及答案

一、判断题(每题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 ) 二、单项选择题(每题2分,共30分) 1、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于( c )。 A、本地方法 B、解态方法 C、最终方法 D、抽象方法 2、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( b )。 A、p ublic static void main() B、public static void main(String[ ] args) C、public static int main(String[ ] args) D、p ublic void main(String arg[ ]) 3、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( c )。

JAVA笔试题--基础很全有答案

第一组 1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用

10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;} 10. } A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=5 D、编译通过,执行结果为:x=3 12.关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2.private static int x=100; 3.public static void main(String args[ ]){ 4.HasStatic hs1=new HasStatic( ); 5.hs1.x++; 6.HasStatic hs2=new HasStatic( ); 7.hs2.x++; 8.hs1=new HasStatic( ); 9.hs1.x++; 10.HasStatic.x- -; 11.System.out.println(“x=”+x); 12.} 13.} A、5行不能通过编译,因为引用了私有静态变量 B、10行不能通过编译,因为x是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 13.以下选项中循环结构合法的是( C ) A、while (int i<7) { i++;

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()方法是在垃圾收集器删除对象之前对这个对象调用的。 2.GC是什么? 为什么要有GC? GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc() Runtime.getRuntime().gc() 3.Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 写程序Math.round(11.5) = 12 Math.round(-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

Java复习习题答案

P13 2.参照例1-2编写一个java applet程序,程序能在浏览器中显示“你好,Hello”。(见p11例1-2) P24 2.参照2-4编写一个java应用程序,用户从键盘只能输入整数,程序输出这些整数的乘积。 import java.util.*; public class ZuoYe2_2{ public static void main (String args[ ]){ Scanner reader=new Scanner(System.in); long chengji=1; int m=0; while(reader.hasNextInt()){ int x=reader.nextInt(); m=m+1; chengji=chengji*x; } System.out.println(m+"个数的乘积为"+chengji); } } P41 1.有一个函数Y=-1+2x,x<0;-1,x=0;-1+3x,x>0编写一个java应用程序,从键盘输入一个X值,程序输出Y值。import java.util.*; public class ZuoYe3_1{ public static void main (String args[ ]){ Scanner reader=new Scanner(System.in); double y=0,x=0; x=reader.nextDouble(); if(x<0) y=-1+2*x; else if(x==0) y=-1; else if(x>0) y=-1+3*x; System.out.println(y); } } P41 2.编写一个java程序,使用while循环计算1-1000之间能被3和7同时整除的整数之和。 public class ZuoYe3_2{ public static void main(String args[]){ int sum=0,m=3,n=7,a=1; while(a<=1000){ if(a%m==0&&a%n==0) sum=sum+a; a++; } System.out.println("sum="+sum); } } P41 3.编写一个java程序,使用for循环计算8+88+888+8888+88888…的前十项和。 public class ZuoYe3_3{ public static void main(String args[]) {

Java基础笔试机试测试题(带答案)

Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java"中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量c的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常

java基础考试题及答案

新员工考试 一、选择题(共30题,每题 2 分) 1. 下面哪些是合法的标识符?(多选题) A. $persons B. TwoUsers C. *point D. this E. _endline 答案A,B,E 分析Java 的标识符可以以一个Unicode 字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字(this 保留字)。 2. 哪些是将一个十六进制值赋值给一个long 型变量?(单选题) A. long number = 345L; B. long number = 0345; C. long number = 0345L; D. long number = 0x345L 答案D 分析十六进制数以Ox开头,Io ng型数以L (大小写均可,一般使用大写,因为小写的 l 和数字1 不易区分)。 3. 下面的哪些程序片断可能导致错误? (多选题) A. String s = "Gone with the wind"; String t = " good "; String k = s + t; B. String s = "Gone with the wind"; String t; t = s[3] + "one"; C. String s = "Gone with the wind"; String standard = s.toUpperCase(); D. String s = "home directory"; String t = s - "directory"; 答案B,D 分析 A:String 类型可以直接使用+进行连接运算。 B:String 是一种Object ,而不是简单的字符数组,不能使用下标运算符取其值的某个元 素,错误。 C:toUpperCase()方法是String 对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String 类型)。 D:String 类型不能进行减(- )运算,错误。 4. point x 处的哪些声明是句法上合法的? (多选题) cIass Person { private int a; pubIic int change(int m){ return m; } } pubIic cIass Teacher extends Person { public int b;

java笔试题及答案.doc

java笔试题及答案 有了下面java笔试题及答案,进行java笔试时就容易多了,请您对下文进行参考: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package子孙类其他package public 7 7 7 7 protected 7 7 7 X friendly 7 7 X X private 7 X X X 不写时默认为friendly 2、Anonymouslnner Class (匿名内部类)是否可以exte nd s (继承)其它类,是否可以imple ment s (实现)i nterf ace (接口) 答:匿名的内部类是没有名字的内部类。不能exte n ds (继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Sta ti cNestedC las s 和Inner Clas s 的不同答: Nes tedC lass (一般是C+ +的说法),In ne rClass (—般是JAVA的说法)。J ava内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(I

nn erClass)意味着1创建一个st atic内部类的对象,不需要一个外部类对象,2不能从一个st atic内部类的一个对象访问一个外部类对象 4、和的区别 答:是位运算符,表示按位与运算,是逻辑运算符,表示遷辑与(and ) 5、Coll ect ion 和Col lect ions 的区别 答:Coll ect ion是集合类的上级接口,继承与他的接口主要有Set和List. Col lections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:asserti on (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,a ssertion 就是在程序中的一条语句,它对一个boolea n表 达式进行检查,一个正确程序必须保证这个bool ean表达 式的值为tr ue;如果该值为fal se,说明程序己经处于不正确的状态下,系统将给出警告或退出。一般来说,

JAVA复习题及答案

第一章JA V A概述 1.JA V A中哪三种平台:Java ME(嵌入式平台),Java SE(标准平台),Java EE(企业级平台). 2.JA V A从第几版称为JA V A2:JA V A 1.2版。 3.JA V A有否指针:无。 4.JA V A的API指的是什么:Application Programming Interface,JA V A的类库。 5.JA V A平台无关性是如何实现的:通过编译生成与平台无关的代码──字节码,而不是通常的特定机器上的机 器码,由平台上的Java虚拟机中的Java解释器解释执行。 6.JA V A有哪两种程序形式:Application和Applet程序。 7.Application程序运行时系统调用程序的哪个方法:main()方法。Applet程序执行时系统自动调用程序的哪个方 法:init()方法。 8.绘图程序中系统自动调用哪个方法:paint(Graphics g)方法。 9.JDK是什么:Java开发工具包(Java Development Kit ) 的缩写,包括JAVA类库、JAVA编译器、JAVA解释 器、运行时环境、命令行工具。 10.有哪几种主要的可视化的集成源程序编辑环境:Eclipse, JCreator, JBuilder等。 11.安装JDK的可执行文件是:jdk-1_5_0-windows-i586.exe 12.安装JDK帮助文档的是:jdk-1_5_0-doc.zip 第二章JA V A语言基础 13.保留字是什么意思,能否用于程序员定义自己的类、方法、变量等名字:JA V A中已定义的用于特定用途的标 识符。不能。 14.i++与++i有什么区别? 15.写出各种转义字符?p17。\t, \n, \r, \‖, \’, \\ 16.编程良好习惯中,对象名、包名、类名、变量名、常量名、接口名、方法名中的字符的大小写如何设置?Package –名词且小写;Class--名词且第一个字母大写;Interface—同Class;Methods-动词且第一个字母小写,分隔词第一个字母大写,不用‖-―;Variable—第一个字母小写,不用‖_‖,‖$‖(对于inner class有意义);Constants—大写并用‖_‖ 17.标识符的用途:用于给类、方法、变量、接口、程序块、对象等起名字。 18.标识符中可否有空格,可否有#号:不能,只能有字母、下划线、美元符、数字 19.判断合法的标识符:identifier,userName,_FH User_Name ,_sys_val,$change 2mail,room#//,class,ab-cd,ac eh 20.JA V A中标识符大小写敏感吗? 21.实数类型的两种类型中哪种是默认的:double。 22.float和int型的数据各占多少位(bit)。32位 23.什么叫局部变量:方法内部的变量。 24.局部变量有默认值吗:没有。 25.局部变量出了方法体后还存在吗:不存在。 26.一个变量可以重复定义吗:不能。 27.低级类型的数据与高级类型的数据进行运算时,怎样进行类型转化:低级的类型首先自动转化为高级类型,然 后进行运算。 28.域(field)变量应该定义在方法之外还是方法之内:之外。 29.sum+=i的展开式:sum=sum+i 30.计算a+=a*=b-=(a=4)*(b=2)的结果,其中初始时a=4,b=2。 31.―&‖和―&&‖的区别? 32.关系运算符与逻辑运算符哪个优先级高,为什么:关系,因为关系运算的结果false或true用于逻辑运算。 33.以下计算结果是否对?

java笔试题含答案

班级:_______________ 学号:______________ 姓名:___________ Java 笔试题 (可多选) 1. 下面哪些是Thread类的方法( ABD) A start() B run() C exit() D getPriority() 2. 下面关于类的说法正确的是(A) A 继承自Throwable B Serialable C 该类实现了Throwable 接口 D 该类是一个公共类 3. 下面程序的运行结果是( false ) String str1 = "hello"; String str2 = "he" + new String("llo"); == str2); 4. 下列说法正确的有( C) A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 5. 指针在任何情况下都可进行>, <, >=, <=, ==运算( true ) 6. 下面程序的运行结果:(B) public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; (); "ping"); } static void pong() { "pong"); } A pingpong

B pongping C pingpong和pongping都有可能 D 都不输出 7. 下列属于关系型数据库的是(AB) A. Oracle B MySql C IMS D MongoDB 8. GC(垃圾回收器)线程是否为守护线程( true ) 9. volatile关键字是否能保证线程安全( false ) 10. 下列说法正确的是(AC) A LinkedList继承自List B AbstractSet继承自Set C HashSet继承自AbstractSet D WeakMap继承自HashMap 11. 存在使i + 1 < i的数吗(存在) 12. 的数据类型是(B) A float B double C Float D Double

Java经典面试题大全_带答案

Java经典面试题带答案一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code(字节码) C.Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行(构造器) D.一个class只能定义一个constructor 答案:C 4.提供Java存取数据库能力的包是() A.Java.sql /sql/数据库还有Oracle 也是一种数据库 B.java.awt C.https://www.wendangku.net/doc/a79180683.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环

答案:C 7.下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 答案:A 9.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译sourcecode时指定 B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件 D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD 3.下列标识符不合法的有() A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD 4.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C.intnumber=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 答案:BCD 5.不能用来修饰interface的有()

Java练习题及答案

Java 练习题答案 一、填空 1、对象的状态和行为是对象的主要属性;前者对应类的变 量,行为又称为对象的操作,对应着类的方法。类的定义包括变量声明和方法声明。 2、要嵌入在HTML文件中运行的程序是Java Applet (Java Application 、Java Applet )。 3、安装JDK后,Java 开发工具在Bin 目录。 4、声明接口的保留字是interface 。 5、类的声明“ public class Test extends Applet implements Runable{} ” 中,定义的类名是Test ,其父类是Applet ;实现了Runable 接口。这个类的源程序必须保存为Test.java (写出包括扩展名的文件名)。 6、一个完整的Java 应用程序由一个或多个类组成;其中Java Application 至少有一个主类,这个类中包含一个名为main 的方法 7、JDK下解释执行Java 的程序是java.exe 。 8、语句如下: int[] c1=int[10]; int[] c2={1,2,3,4,5,6,7,8,9,0}; 数组c1 中的元素有10 个;c2 中的元素有10 个; 已初始化赋 值的是c2 (c1 c2 )。 9、执行完下列程序后i 的值为5

int i=0; while(i<5) { i++; 10、运行下列程序段后,结果 c 的取值为120 int a = 100, b = 20,c; char oper ='+'; switch(oper) { case '+': c = a+b; break; case '-': c = a - b; break; default: c = a * b; break; } 11、为了能使用Java 中已提供的类,我们需要用import 语句来引入所需要的类。语句import java.io.* ;中引入了java.io 包的所有类。 二、选择题 1、属于访问控制的关键字是( D )。 A、static B 、final C、abstract D 、private 2、对成员的访问控制保护最强的是(C ) A、public 、 B、缺省、 C private D protected 3、可用做Java 标识符的是( B )。 A、try B_isYour C 2time D my name

java考试试卷及答案

JA V A考试试卷及答案 选择题 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画 图操作。 A. start() B. stop() C. init() D. paint() 3、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?B A)安全性B)多线程C)跨平台D)可移植 4、下列哪个类声明是正确的?D A)abstract final class HI{···}B)abstract private move(){···} C)protected private number; D)public abstract class Car{···} 6、在Java语言中,下列哪些语句关于内存回收的说明是正确的? B A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 10、下列Object类中的方法,哪一项不是完全跟线程有关:A A.String toString() B.void notify() C.void notifyAll() D.void wait() 11、给出下面代码:C

public class Person{ static int arr[] = new int[10]; public static void main(String a[]) { System.out.println(arr[1]); } } 下列说法中正确的是? A.编译时将产生错误; B.编译时正确,运行时将产生错误; C.输出零; D.输出空。 12、字符串是Java已定义的类型,关于它的构造函数,下面说法不正确的是:B A.String(char[] value, int offset, int count) B.String(int[] codePoints,int offset, int count) C.String(String original) D.String(StringBuffer buffer) 13、下列说法中正确的是:C A.导入包会影响程序的性能 B.包存储在类库中 C.包是类的容器D.上述说法都不对 14、下列不是String类的常用方法是:C

Java开发工程师笔试题(带答案)

Java开发工程师笔试试题 (请不要在试题上留任痕迹,所有答案均写在答题纸上) 一.编程题(共26分) 1.任意写出一种排序算法。(6分) public void sort(int [] array){ //代码区 } 2.求1+2+3+..n(不能使用乘除法、for 、while 、if 、else 、switch 、case 等关键字 以及条件判断语句)(8分) public int sum(int n){ //代码区 return 0; } 3.完成下面法,输入一个整数,输出如下指定样式图案。(12分) 输入:3, 输出: 1*2*3 7*8*9 4*5*6

输入:4 输出: 1*2*3*4 9*10*11*12 13*14*15*16 5*6*7*8 public void drawNumPic(int n){ //代码区 } 二.选择题(定项选择每题3分,不定项选择每题4分,共63分) 1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B ) A.int float B.int double C.long float D.long double 2.只有实现了__接口的类,其对象才能序列化( A ) A.Serializable B.Cloneable https://www.wendangku.net/doc/a79180683.html,parable

D.Writeable 3.代码System. out. println(10 % 3 * 2);将打印出?( B ) A. 1 B.2 C.4 D.6 4.以下程序运行的结果为( A ) public class Example extends Thread{ @Override public void run(){ try{ Thread.sleep(1000); }catch (InterruptedException e){ e.printStackTrace(); } System.out.print("run"); } public static void main(String[] args){ Example example=new Example(); example.run(); System.out.print("main"); } } A.run main B.main run C.main D.run E.不能确定 5.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?( B ) A.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值

相关文档