文档库 最新最全的文档下载
当前位置:文档库 › java复习题

java复习题

java复习题
java复习题

1、下列关于java语言特点描述错误的是

A.Java语言不支持指针

B.Java具有自动垃圾回收的机制

C.Java只能运行在Window和Linux平台

D.Java允许多个线程同时执行

2下列关于JDK的说法中,错误的是?

A.JDK是Java开发工具包的简称

B.JDK包括Java编译器、Java文档生成工具、Java打包工具等

C.安装JDK后,还需要单独安装JRE

D.JDK是整个Java的核心

答案:C

解析:SUN公司提供了一套Java开发环境,简称JDK(Java Development Kit),它是整个Java 的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等。JDK 工具中自带了一个JRE工具,也就是说开发环境中包含运行环境,这样一来,开发人员只需要在计算机上安装JDK即可,不需要专门安装JRE工具了。

3下面关于path环境变量的说法中,错误的是?()

A.path环境变量是系统环境变量中的一种,它用于保存一系列的路径,每个路径之间以分号分隔

B.在命令行窗口输入“set path”命令,可以查看当前系统的path环境变量

C.在命令窗口对环境变量进行的任何修改只对当前窗口有效,一旦关闭窗口,所有的设置都会被取消

D.配置系统环境变量时以英文半角逗号(,)分隔每一个路径

答案:D

解析:配置系统环境变量时时以英文半角分号(;)分隔每一个路径的。

4安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种()

A.Java文档制作工具

B.Java解释器

C.Java编译器

D.Java启动器

答案:B

1下列选项中,哪一个是单行注释的符号?()

A.\\

B.//

C./

D.\

答案:B解析:// 双斜杠表示注释单行代码

2下列常量中,属于整型常量的是?()

A.198

B.2e3f

C.true

D.null 答案:A

解析:2e3f属于浮点数常量,true属于布尔常量,null属于null常量

3下列选项中,哪个是程序的运行结果

class Test{

public static void main(String[] args) {

int a = 3;

int b = 6;

System.out.print(a==b);

System.out.print(a

System.out.print(a!=b);

System.out.print(a>=b);

}

}

A.false false true false

B.false false true true

C.false true true false

D.true false false true 答案:C解析:3==6(错),3<6(对),3!=6(对),3>=6(错)

4若x=6 ,y=5 则表达式int max=x>y?x:y 的结果为()

A.6

B.5

C.true

D.false 答案:A

解析:三元表达式语法结构:判断条件? 表达式1 : 表达式2当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值

5请阅读下面的程序片段

boolean b=true;

if(b=false) {

System.out.println("a");

} else if(b) {

System.out.println(b);

} else if(!b) {

System.out.println("c");

} else {

System.out.println("d");

}

程序的执行结果是()

A.a

B.b

C.c

D.d 答案:C

解析:条件语句的值为false,所以值为false的语句才可以输出,这里用到了逻辑运算符!(非)即!true 的值为false,因此输出结果是c

6请阅读下面的程序

public class SwitchDemo3 {

public static void main(String[] args) {

char c = …B?;

switch ? {

case …A?:

System.out.println(“优”);

break;

case …B?:

System.out.println(“良”);

break;

case …C?:

System.out.println(“差”);

break;

}

}

}

下列选项中,哪一个才是程序的运行结果

A.优

B.良

C.差

D.编译失败答案:B

解析:char c=’B’与case ‘B’相匹配,因此输出结果为“良”

7请阅读下面的程序

Public class Test {

public static void main(String[] args) {

int a = 0;

int b = 0;

for (int i = 1; i <= 5; i++) {

a = i % 2;

while (a-- >= 0) {

b++;

}

}

System.out.println("a=" + a + ",b="+ b);

}

}

下列选项中,哪一个是正确的运行结果()

A.a=8,b=-2

B.a=-2,b=8

C.a=3,b=0

D.a=0,b=3

答案:B解析:本题中有两个循环语句,分别是外层循环的for语句和内层循环的while语句,首先程序会执行for循环中的语句,并执行循环体中的表达式a=i%2,计算出a的值,然后在进入while循环计算b的值,循环往复直到外层循环条件i>5为止

8阅读下面的程序

public class Test {

public static void main(String[] args) {

for(int x = 0 ; x <=3 ; x++){

continue;

System.out.print(x%2);

}

}

}

运行结果正确的是

A.跳出循环,无输出

B.0121

C.01

D.0123

答案:A解析:continue语句的作用是终止本次循环,因此contine后的代码永远不会被执行,都是无效代码

9____关键字用于包的声明答案:package解析:

10【】关键字用于引入包答案:import

11若x = 2,则表达式( x + + )/3 的值是【】答案:0

12若int a =2; a+=3;执行后,变量a的值为【】答案:5

13方法重载的条件是:方法名相同,【】不相同答案:参数列表

解析:方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数列表(参数个数或参数类型)不相同

14定义一个方法时,要有访问修改符、返回值类型、方法名、【】

答案:参数列表解析:方法的定义比较严格,必须要有访问修饰符、返回值类型、方法名称、参数列表(参数类型、参数名称)

“隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征()

A.封装

B.继承

C.多态

D.以上都不是

答案:A解析:封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。

2下列选项中,不属于面向对象特征的是()。

A.继承性

B.封装性

C.跨平台性

D.多态性

答案:C解析:面向对象有三种特性,分别是封装性、继承性和多态性。跨平台性是Java

语言的特点,而不是面向对象的特征。

3请阅读下面的代码

class A{

int x;

static int y;

void fac(String s){

System.out.println(“字符串:”+s);

}

}

下列选项中描述正确的是()

A.x , y和s 都是成员变量

B.x 是实例变量,y是类变量,s是局部变量

C.x和y是实例变量,s是参数

D.x ,y和s都是实例变量

答案:B解析:在方法中声明的s是局部变量,使用static关键字修饰的y是类变量,在类中定义的x是实例变量。

4请阅读下面的程序代码

Class Person{

void say(){

System.out.println(“hello”);

}

}

class Example{

public static void main(String[] args){

Person p2 = new Person();

Person p1 = new Person();

p2.say();

p1.say();

p2=null;

p2.say();

}

}

下列关于程序运行结果的描述中,正确的是()

A.输出1个hello

B.输出2个hello后会抛出异常

C.输出3个hello后会抛出异常

D.不会输出hello,直接抛出异常

答案:B解析:程序中创建了2个Person对象p1、p2,并分别调用了say()方法输出两个hello,然后将p2对象置为null,使p2对象失去了引用,因此再次使用p2对象调用say()方法时,会抛出异常。

5下列关键字中,用于创建类的实例对象的是()。

A.class

B.new

C.private

D.void

答案:B解析:Java中使用new关键字创建对象,class用于定义一个类,private是权限修饰符,表示表示只能在本类中访问,void表示无返回值

6下面哪个关键字用于将类中的属性私有化()

A.default

B.public

C.private

D.protected 答案:C

7下面关于调用构造方法的描述中,正确的是()

A.构造方法在类定义的时候被调用

B.构造方法在创建对象的时候被调用

C.构造方法在调用对象方法时被调用

D.构造方法在使用对象的变量时被调用

答案:B解析:调用构造方法创建对象构造方法的作用是为对象中的属性赋值,在创建对象时,构造方法就会被调用。

8下列关于构造方法定义的描述中,错误的是()。

A.方法名与类名相同

B.在方法名的前面没有返回值类型的声明

C.当定义了有参构造方法,系统默认的无参构造方法依然存在

D.在方法中不能使用return语句返回一个值

答案:C

9下列关于构造方法的描述,错误的是()。

A、一个类中只能定义一个构造方法

B、一个类中可以定义多个构造方法

C、如果在一个类中定义有参的构造方法,jvm就不会提供默认的无参构造方法

D、构造方法的作用是用来给属性进行初始化的答案:A

10Person p = new Person(“张三”,23);这条语句会调用下列哪个构造方法给属性进行初始化()

A.public Person(){}

B.public Person(String name,int age) { https://www.wendangku.net/doc/3216412709.html, = name; this.age = age; }

C.public Person(int age,String name) { this.age = age; https://www.wendangku.net/doc/3216412709.html, = name; }

D.public Person(String name) { https://www.wendangku.net/doc/3216412709.html, = name; }

答案:B解析:创建对象时会找到匹配的构造方法给属性进行初始化,由于Person p = new Person(“张三”,23);这条语句中有两个参数,而且第1个参数是String类型的,第2个参数是int类型的,因此会调用B选项中的构造方法。

11在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?

A.inherits

B.implements

C.extends

D.modifies 答案:C

12在类的继承关系中,需要遵循以下哪个继承原则?

A.多重

B.单一

C.双重

D.不能继承答案:B

13已知类的继承关系如下:

class Employee;

class Manager extends Employeer;

class Director extends Employee;

则以下语句能通过编译的有哪些?

A.Employee e=new Manager();

B.Director d=new Manager();

C.Director d=new Employee();

D.Manager m=new Director();

答案:A

14编译运行下面的程序,结果是什么?

public class A {

public static void main(String[] args) {

B b = new B();

b.test();

}

void test() {

System.out.print("A");

}

}

class B extends A {

void test() {

super.test();

System.out.print("B");

}

}

A.产生编译错误

B.代码可以编译运行,并输出结果AB

C.代码可以编译运行,但没有输出

D.编译没有错误,但会产生运行时异常

答案:B

15public class Example {

public static void main(String[] args) {

try{

int rst = 4/0;

System.out.println("ret = "+rst);

}catch(Exception e){

System.out.println("catch语句块执行");

return;

}finally{

System.out.println("finally语句块执行");

}

System.out.println("程序继续向下执行");

}

}

运行以上程序,输出的结果是()

A.catch语句块执行

B.catch语句块执行程序继续向下执行

C.catch语句块执行finally语句块执行

D.0 程序继续向下执行

答案:C解析:在try语句块中发生了除零异常,因此会执行catch语句块中的内容,输出"catch 语句块执行",finally语句块中表示一定会执行的语句,虽然catch中有return,但依然会输出"finally语句块执行"

16下面程序运行的结果是()

class Demo{

public static void main(String[] args){

try{

int x = div(1,2);

}catch(Exception e){

System.out.println(e);

}

System.out.println(x)

}

public static int div(int a,int b){

return a / b ;

}

}

A.输出1

B.输出0

C.输出0.5

D.编译失败答案:C

17在try{}catch(______e){}横线处需要填写的是()

A.异常对象

B.异常类

C.任意对象

D.任意类

答案:B解析:catch代码块需要一个形参指明它所能够接收的异常类型,这个参数的类型

必须是Exception类或其子类

18以下对于try…catch语句描述正确的是()

A.try…catch语句处理程序中的错误

B.try...catch语句处理程序中的bug

C.try...catch语句处理程序中的异常

D.以上说法都不正确

答案:C解析:try...catch语句处理程序中的异常

19下列选项中,关于final修饰成员变量的说法正确的是?()

A.被final修饰的成员变量可以被多次赋值

B.被final修饰的成员变量为常量

C.final只能在接口中修饰成员变量

D.以上都不对

答案:B解析:被final修饰的变量为常量,不能被第二次赋值或改变引用

20下列选项中,不可以被final修饰的是?()

A.接口

B.类

C.方法

D.变量

答案:A解析:final关键字可用于修饰类、变量和方法

题目难度:★☆☆☆容易

21分析下面程序,哪一行代码能正确赋值?()

class Demo {

public void method() {

final int num1 = 10;

static int num2 = 20;

abstract int num3 = 30;

private int num4 = 40;

}

}

A.final int num1 = 10;

B.static int num2 = 20;

C.abstract int num3 = 30;

D.private int num4 = 40; 答案:A解析:final可以修饰局部变量

22下面程序的运行结果是()

public class Demo {

public static void main(String[] args) {

try {

System.out.println(10 / 0);

System.out.println("除法正常运行");

} catch (ArithmeticException e) {

System.out.println("除数不能为0");

}

}

}

A.编译失败

B.编译通过,没有结果输出

C.输出:除法正常运行

D.输出:除数不能为0

答案:D解析:虽然是运行时期异常,但是也可以使用try…catch语句进行处理。一旦进入处理语句就不会再回去执行

23下列选项中,用于解压jar文件的命令是()

A.jar –c

B.jar –x

C.jar –v

D.jar -f

答案:B解析:参数x用于解压

24下列选项中,可以导入指定包中所有类的是()

A.package包名;

B.package 包名.*;

C.import 包名;

D.import 包名.*;

答案:D解析:如果有时候需要用到一个包中的许多类,则可以使用“import 包名.*; ”来

导入该包下所有类

25下列关于protected的说法中,正确的是()

A.protected修饰的方法,只能给子类使用

B.protected修饰的类,类中的所有方法只能给子类使用

C.如果一个类的成员被protected修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问

D.以上都不对

答案:C解析:如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问

26如果类的成员被()访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问

A.private

B.default

C.protected

D.public

答案:A解析:如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问。类的良好封装就是通过private关键字来实现的

27阅读下列的代码

public class Test {

public static void main(String[] args) {

_________________________

_________________________

}

}

class Outer {

static class Inner {

public void method () {

System.out.println("method");

}

}

}

下列选项中,填写在空白处可以使程序正常运行的是()

A.Outer o = new Outer(); o.method();

B.Inner I = new Inner(); i.method();

C.Outer.Inner oi = new Outer.Inner(); oi.method();

D.以上答案都不对答案:C

28阅读下列的程序

public class Test3 {

public static void main(String[] args) {

_________________________

_________________________

}

}

class Outer {

static class Inner {

public void method () {

System.out.println("method");

}

}

}

下列选项中,可以正确输出method()方法的是()

A、Outer o = new Outer();

o.method();

B、Inner I = new Inner();

i.method();

C、Outer.Inner oi = new Outer.Inner();

oi.method();

D、以上答案都不对

答案:C

29下列关于使用this调用构造方法的说法中,错误的是?()

A.使用this调用构造方法的格式为this([参数1,参数2…])

B.只能在构造方法中使用this调用其它的构造方法

C.使用this调用其它构造方法的语句必须放在第一行

D.在一个类的两个构造方法中可以使用this互相调用答案:D

30下列关于this的说法中,错误的是()

A.只能在构造方法中使用this调用其它的构造方法,不能在成员方法中使用

B.在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次

C.this关键字可以用于区分成员变量与局部变量

D.this可以出现在任何方法中答案:D

31在Java语言中,所有的类都直接或间接继承自【】类答案:Object

32一个类如果实现一个接口,那么它就需要实现接口中定义的全部【】,否则该类就必须定义成【】答案:方法,抽象类

33异常的捕获通常由try、catch两部分组成,【】代码块用来存放可能发生异常,【】代码块用来处理产生的异常答案:try,catch

34在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为【】

答案:继承

35当一个对象被当成垃圾从内存中释放时,它的【】方法会被自动调用。答案:finalize() 36final修饰的方法,不能被子类【】答案:重写

解析:final修饰的方法为最终方法,不能被重写

37final修饰的局部变量只能被赋值【】次答案:一

解析:final最终变量,只能赋值一次

38RuntimeException类及其子类都是【】异常答案:运行时

39自定义异常需要继承【】类答案:Exception

解析:Exception是所有异常的超类

40构造方法没有返回值类型,因此不能使用【】语句。答案:return

41构造方法的名称必须和【】保持一致。答案:类名

42如果在某一个方法中定义的局部变量与成员变量同名时,在该方法中通过变量名访问到的是【】。答案:局部变量

43类与对象的关系中,【】用于描述多个对象的共同特征,它是对象的模板。【】用于描述现实中的个体,它是类的实例。答案:类,对象

解析:类用于描述多个对象的共同特征,它是对象的模板。对象用于描述现实中的个体,它是类的实例。

44请简述面向对象的三大特征。

答案:封装、继承、多态

面向对象的特点主要可以概括为封装性、继承性和多态性。

其中封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。

继承性主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。

多态性指的是在程序中允许出现重名现象,它指在一个类中定义的属性和方法被其它类继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。

45简述成员变量与局部变量的区别。

答案:1. 定义位置的区别:

1)成员变量是定义在方法之外类之内的变量,称作为成员变量(成员属性).

2)局部变量是定义在方法之内的变量。

2.生命周期的区别:

1)成员变量是随着对象的创建而存在,随着对象的消失而消失。

2)局部变量随着方法的调用执行到了创建局部变量的语句的时候存在,局部变量一旦出了自己的作用域马上从内存中消失。

3.存储位置的区别:

1)成员变量是存储于堆内存中的。

2)局部变量是存储于栈内存中的。

4. 初始值的区别:

1)成员变量有默认的初始值:

int 0

double 0.0

float 0.0f;

char ' '

String null

boolean false

2)局部变量没有默认的初始值,要先初始化才能使用。

46请简述类与对象之间的关系。

答案:类是同一种类型对象的抽象,它用于描述一组对象的共同特征和行为。

面向对象的编程思想力图在程序中对事物的描述与该事物在现实中的形态保持一致。为了做到这一点,面向对象的思想中提出两个概念,即类和对象。其中,类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。

47请简要说明使用封装的好处。

答案:1.提高了数据的安全性。2.隐藏了实现细节。3.操作简单、方便。

49请阅读下面的程序,在空白处填写正确的代码,定义一个无参构造方法。

public class Person {

public ____() {}

}答案:Person

解析:在一个类中定义的方法如果同时满足以下三个条件,该方法称为构造方法,具体如下:构造方法的定义需要同时满足三个条件,具体如下:

1:方法名与类名相同

2:在方法名的前面没有返回值类型的声明

3:在方法中不能使用return语句返回一个值

因此,只需在横线处填写Person即可。

50请简述构造方法的特点。

答案:1.构造方法名与类名相同2.在构造方法名的前面没有返回值类型的声明3.在构造方法中不能使用return语句返回一个值

51请简要说明什么是构造方法重载。

答案:与普通方法一样,构造方法也可以重载,在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。

52阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果并分析出现此结果的原因。否则请说明编译失败的原因。

class Cat{

void mi( ) throws NullPointerException{

System.out.println( "Cat mi mi .. " );

}

}

public class SmallCat extends Cat{

void mi( ) throws Exception{

System.out.println( "SmallCat mi mi .. " );

}

public static void main( String[] a ) throws Exception{

Cat cat = new SmallCat();

cat.mi();

}

}

答案:程序编译失败。在子类中,如果要覆盖父类的一个方法,而父类中的方法声明了throws 异常,则子类的方法也可以抛出异常,但切记子类方法抛出的异常只能是父类方法抛出的异常的同类或子类,而不能是父类。

53在横线处填入正确的代码,可以让局部变量的age给成员变量的age赋值。

class Person {

int age;

public Person(int age) {

______________//让局部变量的age给成员变量的age赋值

}

public int getAge() {

return this.age;

}

}

答案:

this.age = age;

54阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果并分析出现此结果的原因。否则请说明编译失败的原因。

public class Example {

public static void main(String[] args) {

try {

System.out.println(4 / 0);

System.out.println("程序没有异常");

} catch (Exception e) {

System.out.println("程序发生异常");

return;

} finally {

System.out.println("finally语句执行");

}

}

}

答案:程序发生异常

finally语句执行

解析:try语句中存放可能发生异常的语句,catch语句用于对异常进行处理,finally中的语句表示一定会被执行的语句。在进行4/0运算时,程序发生了除0异常,catch语句捕获异常执行并输出“程序发生异常”,此时在catch语句中还有一个return语句,但是这并不会影响finally语句的正常运行,程序仍然输出“finally语句执行”,除非在catch语句中执行System.exit(0);退出虚拟机,finally语句才不执行。

55简述抽象类和接口的区别?

答案:在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。

56阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。

public class Outer {

public String name="Outer";

private class Inner {

String name="inner";

void showName(){

System.out.println(name);

}

}

public static void main(String[] args) {

Inner inner = new Outer().new Inner();

System.out.println(https://www.wendangku.net/doc/3216412709.html,);

}

}

答案:程序能够编译通过,运行的结果为“inner”

57构造方法和普通的成员方法有什么区别?

答案:构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值。

解析:

58阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。

public class Demo {

public static void main(String[] args) {

new Object(){

public void show(){

System.out.println("helloworld");

}

}.show();

}

} 答案:helloworld解析:匿名内部类继承了Object类,并自定义了一个show()方法,

* 使用匿名内部类调用show()方法,调用的是子类也就是匿名内部类自身的show()方法,* 编译和运行均能正常进行,因此打印输出了helloworld

60请简要概述try…catch语句中,try和catch的作用

答案:try中编写被检查可能出现异常的代码,catch用于抓住或者不捕获异常,并处理异常解析:

61简述thorws的作用

答案:throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。如果异常的类型是Error或RuntimeException,或它们的子类,这个规则不起作用,因为这在程序的正常部分中是不期待出现的。如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型

解析:Throws用于声明方法抛出异常,如果是RuntimeException,可以不用抛出。但是如果是编译异常,必须使用throws抛出

62运行时异常的特点是?

答案:运行时异常的特点是Java编译器不会对其进行检查

解析:RuntimeException类及其子类都是运行时异常。运行时异常的特点是Java编译器不会对其进行检查,也就是说,当程序中出现这类异常时,即使没有使用try..catch语句捕获或使用throws关键字声明抛出,程序也能编译通过

63简要概述,当用final修饰符修饰类、变量和方法时,被修饰者有哪些特性

答案:final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特性:

1、final修饰的类不能被继承。

2、final修饰的方法不能被子类重写。

3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。

64请简述Java中继承的概念以及使用继承的好处

答案:概念:在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。好处:继承性主要描述的是类与类之间的关系,通过继承,可以无需重新编写原有类的情况下,对原有类的功能进行使用和扩展。

65请简要说明单例设计模式的实现步骤。

答案:1) 使用private关键字私有化构造方法;2) 在类的内部创建一个该类的实例对象,并使用私有的静态变量引用该对象;3) 为了让类的外部能够获得类的实例对象,需要定义一个公有的静态方法,用于返回该类实例。

66请问将一个类设计成单例设计模式(饿汉式),需要哪些步骤?

答案:1.私有构造函数2.创建私有的静态的本类对象3.对外提供公有的静态的返回值类型为本类的方法

1下列关于ServerSocket类的说法,错误的是?()

A.ServerSocket类是被final关键字修饰的类,因此没有子类

B.ServerSocket类用于表示服务器端

C.ServerSocket类中的accept()方法会阻塞

D.创建ServerSocket对象时可以指定需绑定到的端口答案:A

解析:ServerSocket类是一个普通方法,没有被final关键字所修饰,它有一个直接已知子类是SSLServerSocket

2以下哪个类用于实现TCP通信的客户端程序?()

A.ServerSocket

B.Socket

C.Client

D.Server 答案:B

3以下哪个方法是DatagramSocket类用于发送数据的方法?()

A.receive()

B.accept()

C.set()

D.send() 答案:D

4下列方法中,https://www.wendangku.net/doc/3216412709.html,.ServerSocket类用于接收客户端请求的方法是()

A.get()

B.accept()

C.receive()

D.connect() 答案:B

5下列关于UDP协议的说法,错误的是()

A.UDP是无连接通信协议

B.UDP协议消耗资源小,通信效率高

C.使用UDP协议时可能会丢失数据

D.在传输重要数据时建议使用UDP协议

答案:D解析:正是由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。

6以下对File类的public boolea isFile()方法的描述,哪个是正确的?

A.判断该File对象所对应的是否是文件

B.判断该File对象所对应的是否是目录

C.返回文件的最后修改时间

D.在当前目录下生成指定的目录答案:A

7下列关于InetAddress类的getHostName()方法的返回值的说法中,错误的是()

A.如果创建的InetAddress对象是用主机名创建的,则将该主机名返回

B.如果不是使用主机名创建的InetAddress对象,则将根据IP地址反向查找对应的主机名,找到则返回主机名

C.该方法用于返回某个IP 地址的主机名

D.如果不是使用主机名创建的InetAddress对象,则将根据IP地址反向查找对应的主机名,找不到则返回null

答案:D解析:如果不是使用主机名创建的InetAddress对象,则将根据IP地址反向查找对应的主机名,找不到则返回IP地址,而不是null

8InetAddress类中能获取IP地址及主机名的方法是()

A.getHostName()

B.getLocalHost()

C.getHostAddress()

D.getAddress ()

答案:B解析:getHostName()只能获取主机名,getHostAddress()只能获取IP地址,getAddress()获取IP地址的字节数组,getLocalHost()获取到InetAddress对象,里面包含IP地址及主机名,因此答案B正确

9要产生[20,999]之间的随机整数可以使用以下哪个表达式?

A.(int)(20+Math.random()*97)

B.20+(int)(Math.random()*980)

C.(int)Math.random()*999

D.20+(int)Math.random()*980 答案:B

10以下Math类的方法中,-4.4通过哪个方法运算后,结果为-5.0?

A.round()

B.min()

C.floor()

D.ceil() 答案:C

11阅读下面的程序:

public class test {

public static void main(String args[]) {

int i;

float f = 2.3f;

double d = 2.7;

i = ((int)Math.ceil(f)) * ((int)Math.round(d));

System.out.println(i);

}

} 程序执行后,运行结果为以下哪个选项?

A.9

B.5

C.6

D.6.1 答案:A

12先阅读下面的程序片段:

String str1=new String("java");

String str2=new String("java");

StringBuffer str3=new StringBuffer("java");

对于上述定义的变量,以下表达式的值为true的是哪个?

A.str1==str2;

B.str1.equals(str2);

C.str1==str3;

D.以上都不对答案:B

13以下选项中,哪个流中使用了缓冲区技术?

A.BuffereOutputStream

B.FileInputStream

C.DataOutputStream

D.FileReader 答案:A 14以下选项中,哪个是FileOutputStream的父类?

A.File

B.FileOutput

C.OutputStream

D.InputStream 答案:C

15在以下哪种情况下,线程进入就绪状态?

A.线程调用了sleep()方法时

B.线程调用了join()方法

C.线程调用了yield()方法时

D.线程调用了notify()方法答案:D

16线程调用sleep()方法后,该线程将进入以下哪种状态?

A.就绪状态

B.运行状态

C.阻塞状态

D.死亡状态答案:C

17处理ActionEvent事件的监听器对象需要实现哪个接口()

A.ActionListener

B.KeyListener

C.KeyEvent

D.KeyAdapter 答案:A

18JTextField的构造方法中,方法JTextField(String text,int column)的作用是()

A.创建一个空的文本框,初始字符串为null

B.创建一个具有指定列数的文本框,初始字符串为null

C.创建一个显示指定初始字符串的文本框

D.创建一个具有指定列数、并显示指定初始字符串的文本框答案:D

19MouseEvent类中定义了很多常量来标识鼠标动作,其中表示鼠标中键点击事件的常量是()A.BUTTON3 B.BUTTON2 C.BUTTON1 答案:B

20若想实现JRadioButton按钮之间的互斥,需要使用()类

A.ButtonGroup

B.JComboBox

C.AbstractButton 答案:A

21JMenu中用于返回指定索引处的菜单项,第一个菜单项的索引为0的方法是()

A.int getItemCount()

B.void JMenuItem insert(JMenuItem menuItem,int pos)

C.void addSeparator()

D.JMenuItem getItem(int pos) 答案:D

22JScrollPane提供的方法中,用于指定水平滚动条策略,即水平滚动条何时显示在滚动面板上的方法是()

A.void setHorizontalBarPolicy(int policy)

B.void setVerticalBarPolicy(int policy)

C.void setViewportView(Component view) 答案:A

23在CardLayout布局管理中,用于显示parent容器的前一张卡片的方法是()

A.void previous(Container parent)

B.void show(Container parent,String name)

C.void next(Container parent)

D.void first(Container parent)

答案:A解析:在CardLayout布局管理中,用于显示parent容器的前一张卡片的方法是void previous(Container parent)

24下列选项中,关于GridLayout(网格布局管理器)的说法错误的是()

A.GridLayout布局管理器可以设置组件的大小

B.放置在GridLayout布局管理器中的组件将自动占据网格的整个区域

C.GridLayout布局管理器中,组件的相对位置不随区域的缩放而改变,但组件的大小会随之改变,组件始终占据网格的整个区域

D.GridLayout布局管理器缺点是总是忽略组件的最佳大小,所有组件的宽高都相同

答案:A解析:GridLayout布局管理器不可以设置组件的大小,组件会自动占据网格的整个区域

25GridLayout 的三个构造方法中,能够指定容器的行数和列数以及组件之间的水平、垂直间距的是()

A.GridLayout()

B.GridLayout(int rows,int cols)

C.GridLayout(int rows,int cols,int hgap,int vgap)

答案:C解析:GridLayout 的三个构造方法中,能够指定容器的行数和列数以及组件之间的水平、垂直间距的是GridLayout(int rows,int cols,int hgap,int vgap)

26在GridBagConstraints类的常用属性中,用于设置组件在容器中的水平方向和垂直方向的权重的是()

A.fill

B.gridwidth和gridheight

C.gridx和gridy

D.weightx和weighty

答案:D解析:weightx和weighty用于设置组件在容器中的水平方向和垂直方向的权重。27下列是事件监听机制的四个步骤,请对下列步骤进行排序,使事件源实现了事件的监听机制()

①定义一个类实现事件监听器的接口

②为事件源注册事件监听器对象

③事件监听器调用相应的方法来处理相应的事件

④创建一个事件源

A.①④②③

B.①③④②

C.④①②③

D.④②①③

答案:A解析:首先需要定义一个类实现事件监听器的接口,例如Window类型的窗口需要实现WindowListener。接着通过addWindowListener()方法为事件源注册事件监听器对象,当事件源上发生事件时,便会触发事件监听器对象,由事件监听器调用相应的方法来处理相应的事件

28下列选项中,关于流式布局管理器(FlowLayout)的说法错误的是()

A.在流式布局下,当到达容器的边界时,会自动将组件放到下一行的开始位置

B.FlowLayout布局管理器的特点就是可以将所有组件像流水一样依次进行排列

C.流式布局管理器是最简单的布局管理器

D.流式布局管理器将容器划分为五个区域

答案:D解析:流式布局管理器不可以给容器划分区域

29标准输入流对应的类型是()

A.InputStreamReader

B.InputStream

C.DataInputStream

D.FileInputStream

答案:B解析:标准输入流对应的类型是InputStream,字节输入流

30标准输出流对应的类型是()

A.ObjectOutputStream

B.FilterOutputStream

C.PrintStream

D.FileOutputStream 答案:C 解析:out为PrintStream类型,它是标准输出流,默认将数据输出到命令行窗口

31下列选项中,关于ByteArrayOutputStream类的描述正确的是?()

A.ByteArrayOutputStream流中缓冲区的大小不能被定义

B.ByteArrayOutputStream流关闭后仍可被调用,并且不会产生任何IOException

C.ByteArrayOutputStream流关闭后不能被使用,否则抛出IOException

D.ByteArrayOutputStream流必须与ByteArrayInputStream流配对使用

答案:B解析:使用ByteArrayOutputStream(int size)构造方法便可以设置缓冲区的大小;ByteArrayOutputStream流关闭后仍可被调用,并且不会产生任何IOException。ByteArrayOutputStream流与ByteArrayInputStream流分别对应的是字节输出流和字节输入流,没有强制要求配对使用。

32下面选项中,关于PrintStream类描述错误的是()

A.PrintStream可以实现将基本数据类型的数据或引用数据类型的对象格式化成字符串后再输出

B.PrintStream类位于IO包中,是字符输出流的子类

C.调用println()方法和print()方法输出对象数据时,对象的toString()方法被自动调用

D.PrintStream类提供了一系列用于打印数据的print()和println()方法

答案:B解析:PrintStream类位于IO包中,是字节输出流的子类

33在PipedInputStream类中,可以使管道输入流连接到管道输出流的方法是()

A.connect ()

B.receive ()

C.read()

D.available()

答案:A解析:receive ()方法用于接收数据字节,read()方法用于读取管道输入流中的下一个数据字节,available()方法可以获取不受阻塞地从此输入流中读取的字节数。

34下列选项中,关于管道流的说法错误的是()

A.PipedOutputStream用于向管道中写入数据

B.PipedInputStream用于从管道中读取数据

C.使用管道流时必须先建立连接

D.PipedInputStream、PipedOutputStream属于字符流

答案:D解析:在字符流中也有一对PipedReader和PipedWriter用于管道的通信,它们的用法和PipedInputStream、PipedOutputStream相似

35下列有关HashSet集合的描述中,错误的是()

A.HashSet是Set接口的一个实现类

B.向HashSet存入对象时,对象一般会重写hashCode ()和equals ()方法

C.向HashSet存入对象时,对象的equals ()方法一定会被执行

D.HashSet存储的元素是不可重复的

答案:C解析:当调用HashSet集合的add()方法存入元素时,首先调用当前存入对象的hashCode()方法获得对象的哈希值,然后根据对象的哈希值计算出一个存储位置。如果该位置上没有元素,则直接将元素存入,如果该位置上有元素存在,才会调用equals()方法

36下列方法中可以用于往HashSet集合中添加元素的是()

A.add(E e)

B.contains(Object o)

C.clear()

D.iterator()

答案:A解析:用于往集合中添加元素的方法是add(E e)。contains(Object o)方法用于判断set集合中是否包含指定的元素,clear()方法移除此set集合中的所有元素,iterator()方法用于获取在此set 中的元素上进行迭代的迭代器

37下列选项中,不属于FileWriter直接或间接父类的是()

A.Object

B.Writer

C.OutputStreamWriter

D. OutputStream 答案:D 38下列选项中,哪个类用于读取文本文件中的字符()。

A.FileReader

B.FileWriter

C.BufferReader

D.BufferWriter 答案:A

39下列选项中,哪个是FileWriter类中read()方法读取到流末尾的返回值?()

A.0

B.-1

C.1

D.无返回值答案:B

40使用FileReader读取reader.txt文本文件中的数据,reader.txt中的内容为:abc

import java.io.*;

public class Example01 {

public static void main(String[] args) throws Exception {

FileReader reader = new FileReader("reader.txt");

int ch;

while ((ch = reader.read()) != -1) {

System.out.print(ch+" ");

}

reader.close();

}

}运行以上程序的结果是()

A.编译出错

B.a b c

C.97 98 99

D.无输出答案:C

41阅读下列代码

import java.io.*;

public class Example{

public static void main(String[] args) throws Exception {

// 创建一个带缓冲区的输入流

BufferedInputStream bis = new BufferedInputStream(new ________(

"src.txt"));

// 创建一个带缓冲区的输出流

BufferedOutputStream bos = new BufferedOutputStream(

new FileOutputStream("des.txt"));

int len;

while ((len = bis.read()) != -1) {

bos.write(len);

}

bis.close();

bos.close();

}

}下列选项中,可以填写在程序空白处的是()

A.FileInputStream

B.File

C.InputStream

D.以上答案都不正确答案:A 42请将下列四个步骤进行排列,完成文件的拷贝操作( )

①将字节流输入流和源文件相关联,输出流和目标文件相关联。

②明确源文件和目标文件。

③使用输入流的读取方法读取文件,并将字节写入到目标文件中。

④关闭资源。

A.①②③④

B.②①③④

C.②③①④

D.①③②④答案:B

43阅读下段代码

import java.io.*;

public class Example{

public static void main(String[] args) throws Exception {

FileInputStream fis = new FileInputStream("file.txt");

FileOutputStream fos = new FileOutputStream("copy_file.txt");

int ch = 0;

while((ch =fis.read())!=-1){

fos.write(ch);

}

fos._______;

fis.close();

}

}下列选项中,哪个填写在程序的空白处,程序不会报错。

A.read()

B.available()

C.close()

D.write() 答案:C

44下面关于List集合的描述中,哪一个是错误的?()

A.List集合是有索引的

B.List集合可以存储重复的元素

C.List集合存和取的顺序一致

D.List集合没有索引

答案:D解析:List集合中所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素

45下列关于List接口的描述中,错误的是?()

A.List接口继承自Collection接口,是单列集合

B.List集合中允许出现重复的元素

C.List集合存储元素是有序的,即元素的存入顺序和取出顺序一致

D.List集合中所有的元素是以二叉树方式进行存储的

答案:D解析:List集合中所有的元素是以线性方式进行存储的

46在DateFormat类中定义了四个常量值用于作为参数传递给这些方法,其中FULL常量表示?()

A.完整格式

B.长格式

C.普通格式

D.短格式答案:A

47Calendar类中,用于为指定的日历字段增加或减去指定的时间量的方法是?()A.int get(int field) B.void add(int field,int amount)

C.void set(int field,int value)

D.void set(int year,int month,int date) 答案:B

48下列关于java.util.Date类的描述中,错误的是?()

A.无参的构造方法Date(),用来创建当前日期时间的Date对象

B.在JDK的java.util包中提供了一个Date类用于表示日期和时间

C.推荐使用Date(int year,int month,int date)构造方法来创建Date对象

D.接收一个long型参数date的构造方法Date(long date),用于创建指定时间的Date对象

答案:C解析:Date(int year,int month,int date)构造方法已经过时,Date类中只有两个构造方法是建议使用的,一个是无参的构造方法Date(),用来创建当前日期时间的Date对象。另一个是接收一个long型参数date的构造方法Date(long date),用于创建指定时间的Date对象。

49下列方法中,用于返回当前日期的方法是?()

A.Date()

B. Date(int year, int month, int date)

C.Date(String s)

D.Date(long date) 答案:A 50下列是Math类中的一些常用方法,其中用于获取大于等于0.0且小于1.0的随机数的方法是?(

A.random()

B.abs()

C.sin()

D.pow() 答案:A

51下列关于Math.random()方法的描述中,正确的是?( )

A.返回一个不确定的整数

B.返回0或是1

C.返回一个随机的double类型数,该数大于等于0.0小于1.0

D.返回一个随机的int类型数,该数大于等于0.0小于1.0 答案:C

52下列方法中,用于判断字符串是否相等的是()

A.boolean contains(CharSequence cs)

B.String toLowerCase()

C.boolean equals(Object anObject)

D.boolean isEmpty() 答案:C

53下列方法中,哪个用于实现获取字符在某个字符串中第一次出现的索引?()

A.char charAt(int index)

B.int indexOf(int ch)

C.int lastIndexOf(int ch)

D.boolean endsWith(String suffix) 答案:B

54已知String 对象s="abcdefg",则s.substring(2, 5)的返回值为?()A."bcde" B. "cde" C."cdef" D."def" 答案:B

55假如indexOf()方法未能找到所指定的子字符串,那么其返回值为?()

A.false

B.0

C.-1

D.以上答案都不对答案:C

https://www.wendangku.net/doc/3216412709.html,包中提供了一个【】类用于表示TCP客户端

答案:Socket 析:https://www.wendangku.net/doc/3216412709.html,.Socket类表示TCP客户端

57使用UDP协议开发网络程序时,需要使用两个类,分别是【】和【】

答案:DatagramPacket,DatagramSocket

58在Java中,【】类用于操作磁盘中文件和目录,位于【】包中答案:File,java.io

59Java中一个字符占用两个字节,所有字符采用的都是【】码表答案:Unicode

60System.out是【】类的对象,称为标准输出流,调用System类的【】方法可以实现标准输出流的重定向。答案:PrintStream,setOut(PrintStream out)

61在Java中,能实现线程间通信的流是【】。答案:管道流

62InputStreamReader类是用于将【】转换为【】答案:字节流,字符流

63BufferedWriter的【】方法可以写入一个换行符答案:newLine()

64在程序中若想取得一个Runtime实例,则可以调用Runtime类的静态方法【】。

答案:getRuntime()

65Math类中用于计算所传递参数平方根的方法是【】答案:sqrt()

66Math类中有两个静态常量PI和E,分别代表数学常量【】和【】答案:π,e

67已知sb 为StringBuffer 的一个实例,且sb.toString() 的值为"abcde ",则执行sb. reverse()后,sb.toString()的值为【】。答案:edcba

68在TCP/IP协议中,【】可以用来唯一标识一台计算机答案:IP地址

解析:要想使网络中的计算机能够进行通信,必须为每台计算机指定一个标识号,通过这个标识号来指定接受数据的计算机或者发送数据的计算机。在TCP/IP协议中,这个标识号就是IP地址,它可以唯一标识一台计算机。

69LineNumberReader 可以在读文件的同时记录行号,它是【】的直接子类。答案:BufferedReader

70线程的优先级用1~10之间的整数来表示,其中【】代表优先级最高,【】代表优先级最低。答案:10,1

71yield()方法只能让相同优先级或者更高优先级、处于【】状态的线程获得运行的机会。

答案:就绪

72要将某个线程设置为后台线程,需要调用该线程的【】方法,该方法必须在【】方法之前调用。答案:setDaemon(true),start()

73 线程的整个生命周期分为五个阶段,分别是【】、【】、【】、【】和【】。答案:新建状态(New),就绪状态(Runnable),运行状态(Running),阻塞状态(Blocked),死亡状态(Terminated)

74当新线程启动后,系统会自动调用【】方法。答案:run()

75在使用JComboBox时,方法【】可以设置组合框的选项是否可编辑

答案:void setEditable(boolean aFlag)

76JTextField有一个子类【】,它表示一个密码框答案:JPasswordText

77JTextField和JTextArea这两个文本组件都继承了【】类答案:JTextComponent

78如果想往JScrollPane面板中添加多个组件,应该先将组件添加到【】中,然后将其添加到JScrollPane中答案:JPanel

79FlowLayout的构造方法FlowLayout(int align)中,参数align决定组件在每行中相对于【】的对齐方式答案:容器边界

80向BorderLayout的布局管理器添加组件时,如果不指定添加到哪个区域,则默认添加到【】区域答案:CENTER

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标志符中合法的是:() A H3_sum B -name C student# D 9_Hello123 2.Java源文件和编译后的文件扩展名分别为() A. .class和.java B. .java和.class C. .class和.class D. .java和.java 3.对于同一消息,对象可以产生不同的行为,这称为类的什么特性?()A)继承性B)封装性C)多态性D)抽象性 4、用来引入包语句的关键词是:() A)import B)abstract C)package D)extends 5.对于小程序,当离开包含Applet的主页后又再返回时将调用()方法。A)start( ) B)init( ) C)destroy( ) D)stop( ) 6.下列对Java中的继承描述错误的说法是() A.子类只能有一个父类 B.子类可作为另一个子类的父类 C.子类可以访问父类的私有属性 D.子类继承父类的方法访问权限保持不变 7.哪种循环在条件表达式被计算之前至少执行循环体语句一次?( ) A)do-while循环B)for循环C)while循环D)以上都不是 8.定义数组String[] a={"ab","abc","abcd","abcde"},数组中a[1]指的是()。 A.ab B.abc C.abcde D.数组越界 9.如果希望组件从左往右,从上到下自动布局界面,应使用哪种布局?()A)没有B)BorderLayout C)FlowLayout D)GridLayout 10.下列说法正确的是() A. 最终类在特殊情况下可以有子类 B. 抽象类只能有一个子类 C. 多态可以通过方法重写和方法重载实现 D. 抽象类不可以声明成员变量和成员方法,只能声明抽象方法 11.下列语句中访问类的方法正确的是:() A)https://www.wendangku.net/doc/3216412709.html, B)https://www.wendangku.net/doc/3216412709.html,( ) C)book->name D)book_name 12.下列选项中哪个是类Pen的构造方法() A)public void Pen() {} B)public static Pen() {} C)public Pen() {} D)public static void Pen() {} 13.单击菜单触发的事件是?() A. ActionEvent B.ItemEvent C.MouseEvent D. KeyEvent 14.关于try/catch/finally结构的异常捕获和处理,说法错误的是()A)try部分是必须的B)catch部分也是必须的 C)可以有多个catch部分D)finally部分也是必须的

java考试试卷及答案

JAVA考试试卷及答案 选择题 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.导入包会影响程序的性能

JAVA期末试题及答案

Java 程序设计》课程试卷 1.使用 Java 语言编写的源程序保存时的文件扩展名是( )。 (A ) .class ( B ) .java C ) .cpp ( D ) .txt 2.设 int a=-2 ,则表达式 a>>>3 的值为( )。 (A ) 0 (B )3 (C ) 8 (D )-1 3.设有数组的定义 int[] a = new int[3] ,则下面对数组元素的引用错误的是( ) ( A )a[0]; ( B ) a[a.length-1]; (C )a[3]; (D )int i=1 ; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( )。 (A )封装 (B )继承 (C )覆盖 (D )重载 5.在类的定义中构造函数的作用是( )。 (A )保护成员变量 (B )读取类的成员变量 (C )描述类的特征 (D )初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( )。 ( A ) try ( B ) break ( C ) catch ( D ) finally 7.类与对象的关系是( )。 (A )类是对象的抽象 (B )对象是类的抽象 15. Java 语言使用的字符码集是 (A) ASCII (B) BCD (C) DCB 16. 如果一个类的成员变量 (A) public (B) (C 对象是类的子类 (D )类是对象的具体实例 )。 8.下面哪一个是 Java 中不合法的标识符( ( A )$persons ( B ) twoNum ( C )_myVar ( D )*point 9.为 AB 类的一个无形式参数无返回值的方法 ( ) 。 ( A ) static void method( ) ( B ) public void method( ) ( C ) final void method( ) ( D ) abstract void method( ) 10.欲构造 ArrayList 类的一个实例,此类继承了 ( A ) ArrayList myList=new Object( ) ( B ) List myList=new ArrayList( ) ( C ) ArrayList myList=new List( ) ( D ) List myList=new List( ) 11. Java 源文件和编译后的文件扩展名分别为( (A) .class 和 .java (C).class 和 .class 12. 在 Java Applet 程序用户自定义的 (A) start( ) (B) stop( ) (C) init( ) 13. 对于一个 Java 源文件, (A) package,import,class (C) import,package,class 14. 下面哪个是非法的: (A) int I = 32; (C) double d = 45.0; method 书写方法头,使得使用类名 List 接口,下列哪个方法是正确的( ) ( B).java 和 .class (D) .java 和 .java Applet 子类中,一般需要重载父类的 (D) paint( ) import, class (B) class,import,package (D) package,class,import ( ) 定义以及 package 正确的顺序是: (B) float f = 45.0; (D) char c = // 符号错 AB 作为前缀就可以调用它,该方法头的形式为 方法来完成一些画图操作。 (D) Unicode 只能 在所在类中使用 则该成员变量必须使用的修饰是

JAVA复习题库及答案

第一题单项选择题 1、在下列说法中,选出最正确的一项是(A )。 A、Java 语言是以类为程序的基本单位的 B、Java 语言是不区分大小写的 C、多行注释语句必须以//开始 D、在Java 语言中,类的源文件名和该类名可以不相同 2、下列选项中不属于Java 虚拟机的执行特点的一项是(D )。 A、异常处理 B、多线程 C、动态链接 D、简单易学 3、下列选项中,属丁JVM 执行过程中的特点的一项是( C )。 A、编译执行 B、多进程 C、异常处理 D、静态链接 4、在Java 语言中,那一个是最基本的元素?( C ) A、方法 B、包 C、对象 D、接口 5、如果有2 个类A 和B,A 类基于B 类,则下列描述中正确的一个是( B )。 A、这2 个类都是子类或者超类 B、A 是B 超类的子类 C、B 是A 超类的子类 D、这2 个类郡是对方的子类 6、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?(D ) A、abstract B、private (本类) C、protected(本包及其他包的子类) D、不使用保留字 7、编译一个定义了3 个类的Java 源文件后,会产生多少个字符码文件,扩展名是什么?(D ) A、13 个字节码文件,扩展名是.class B、1 个字节码文件,扩展名是.class C、3 个字节码文件,扩展名是.java D、3 个字节码文件,扩展名是.class 8、下列关于Java 程序结构的描述中,不正确的一项是( C )。 A、一个Java 源文件中可以包括一个package 语句 B、一个Java 源文件中可以包括多个类定义,但是只能有一个public 类 C、一个Java 源文件中可以有多个public 类 D、源文件名与程序类名必须一致 9、下列说法正确的一项是( C )。 A、java.1ang.Integer 是接口 B、java.1ang.Runnable 是类 C、Doulble 对象在iava.1ang 包中 D、Double 对象在java.1ang.Object 包中 10、以下关于面向对象概念的描述中,不正确的一项是( B )。 A、在现实生活中,对象是指客观世界的实体

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语言复习题及答案

14年(下)程序设计(JA V A语言)复习题 第一:单选 1. 若有定义int x=3,y;则执行语句y=(++x)+(++x)+(++x);后y=()。 (A) 12 (B) 18 (C) 9 (D) 15 2. 下列选项中,不是Java关键字的是()。 (A) double (B) Integer (C) float (D) default 3. 在成员变量与局部变量重名时,若想在方法内使用成员变量,要使用的关键字是()。 (A) super (B) import (C) this(D) return 4. 下列说法中错误的是( B )。 (A) 一个类中的实例方法可以调用其他实例方法 (B) 静态方法可以调用实例方法 (C) 实例方法可以调用静态方法 (D) 静态方法可以调用静态方法 5. 下列关于super的说法中错误的是()。 (A) 用来访问父类被隐藏的成员变量 (B) 用于调用父类中被重写的方法 (C) 用于定义父类 (D) 用于调用父类的构造函数 6. 下列选项属于接口中方法默认访问控制方式的是()。 (A) public (B) private (C) protected(D) default 7. 定义一个名为key的类,下列选项中使其不能被继承的定义是()。 (A) class key{} (B) native class key{} (C) class key{ final;} (D) final class key{} 8. 若有定义String tom=""我们是学生"";则tom.length()的值是()。 (A) 5 (B) 10 (C) 6 (D) 11 9. 调用repaint()方法,会出现什么情况( C )。 (A) 清除以前pain()方法所画的内容 (B) 保留原来pain()所画的内容 (C) 清除pain()以前所画的内容,再一次调用pain()方法 (D) 在pain()以前所画内容基础上,再一次调用pain()画新的内容 10. 从下面的main()调用java lyrics a kiss is but a kiss 中可以访问单词“kiss”的是()。 (A) args[0] (B) args[5] (C) args[4] (D) args[3] 11. 使一个线程放弃处理器并休眠1.5秒,应调用的方法是()。 (A) sleep(1.5) (B) sleep(1500) (C) suspend(1.5) (D) suspend(1500) 12. 如要使处于等待状态的线程恢复到运行状态,应调用的方法是()。 (A) start() (B) run() (C) resume() (D) notify() 13. 如果想获得一个InetAddress对象的主机域名,可调用的方法是()。

JAVA测试题(三套含答案)

<测试一> 1.在单一文件中import、class和package的正确出现顺序是:A A.package, import, class B.class, import, package C.import, package, class D.package, class, import 2.public static void main方法的参数描述是:A,D A.String args[] B.Strings args[] C.String args D.String []args 3.下面哪行代码会在编译的时候出现错误或警告:A,B,C,D A.float f=1.3; B.char c="a"; C.byte b=257; D.boolean b=null; E.int i=10; 4.编译,运行下列代码后的结果是:D public class Test { public static void main (String args []) { int age; age = age + 1; System.out.println("The age is " + age); } } A.编译,运行后没有输出 B.编译,运行后输出:The age is 1 C.能通过编译,但运行时产生错误 D.不能通过编译 4.下面那些关键字不是JAVA的关键字B A if B then C goto D while E case 5.下面那些不是合法的变量定义:A,F A.2variable B.variable2 C. _whatavariable

D. _3_ E. $anothervar F. #myvar 6.内部数据类型byte的取值范围是B A.0 - 65, 535 B.(–128) – 127 C.(–32,768) – 32,767 D.(–256) – 255 7.下列哪些表达式返回true AB A."john" == "john" B."john".equals("john") C."john" = "john" D."john".equals(new Button("john")) 8.声明公用的abstract方法的正确格式是A A.public abstract void add(); B.public abstract void add() {} C.public abstract add(); D.public virtual add(); 9.下面的代码能打印出的结果为:C int i=1; switch (i) { case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); default: System.out.println("default"); } A.one B.one, default C.one, two, default D.default 10.下面的代码能打印出的结果为:B int i=9; switch (i) { default:

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考试复习题(附答案)

《现代程序设计》(JAVA)考试复习题 一、选择题 1、关于Java语言叙述错误的是:(C) A.Java语言具有跨平台性B.Java是一种面向对象的语言 C.Java语言中的类可以多继承D.Java的垃圾收集机制自动回收程序已不再使用的对象 2、以下叙述正确的是:(B) A.构造方法必须是public方法B.main方法必须是public方法 C.Java应用程序的文件名可以是任意的D.构造方法应该声明为void类型 3、关于Java中数据类型叙述正确的是:(B) A、整型数据在不同平台下长度不同B.boolean类型数据只有2个值,true和false C.数组属于简单数据类型D.Java中的指针类型和C语言的一样 4、设int x=1,float y=2,则表达式x / y的值是:(D) A.0 B.1 C.2 D.以上都不是 5、以下语句有语法错的是:(A) A.int x=1;y=2;z=3 B.for (int x=10,y=0;x>0;x++); C.while (x>5); D.for(; ;); 6、关于类和对象的叙述正确的是:(A) A.Java的类分为两大部分:系统定义的类和用户自定义的类 B.类的静态属性和全局变量的概念完全一样,只是表达形式不同 C.类的成员至少有一个属性和一个方法D.类是对象的实例化 7、以下有关构造方法的说法,正确的是:(A) A.一个类的构造方法可以有多个B.构造方法在类定义时被调用 C.构造方法只能由对象中的其它方法调用 D.构造方法可以和类同名,也可以和类名不同 8、以下有关类的继承的叙述中,正确的是:(D) A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性 B.子类只能继承父类的方法,不能继承父类的属性 C.子类只能继承父类的非私有属性,不能继承父类的方法 D.子类不能继承父类的私有属性 9、void 的含义:(C ) A.方法体为空B.定义的方法没有形参 C.定义的方法没有返回值D.方法的返回值不能参加算术运算 10、关于Java中异常的叙述正确的是:(D ) A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误 C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的

JAVA语言程序设计期末考试试题及答案

《JA V A语言程序设计》期末考试试题及答案1(应考必备题库) 一、单选择题 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、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码和解释运行字节码。 2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用2字节内存空间,这样,无论是中文字符还是英文字符,都是占 用2字节内存空间。 3、设x = 2 ,则表达式( x + + )/3 的值是0 。 4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。 5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法是不能被当前类的子类重新定义的方法。 6、创建一个名为MyPackage 的包的语句是package MyPackage ; , 该语句应该放在程序的位置为:应该在程序第一句。 7、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是120。

Java程序设计试题及答案

一、判断题。判断下列各题是否正确,若正确,在()内打“√”,否则打“×”。 1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√ 2、Java语言的源程序不是编译型的,而是编译解释型的。√ 3、Java语言使用的是Unicode字符集,每个字符在内存中占8位。× 4、Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。√ 6、一个类可以实现多个接口,接口可以实现“多重继承”。√ 7、实现接口的类不能是抽象类。× 二、不定项选择题。 1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。 A、java B、class C、html D、exe 2、main方法是Java Application程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。 A、public static void main() B、public static void main(String args[]) C、public static int main(String[] arg) D、public void main(String arg[]) 3、关于下面代码的说法(C)是正确的 public class Example{ public static void main(String[] args){ int[] arr= new int[10]; } } A、编译时产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空(null) 4、不正确的表达式是(AB)。 A、float a=; B、Double a=new Double C、byte a = (byte)340; D、Byte a = 120; 5、定义一个类名为""的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为( CD)。 A、private class MyClass extends Object B、class MyClass extends Object C、public class MyClass D、public class MyClass extends Object 6、下列构造方法的调用方式中,正确的是(C)。 A、按照一般方法调用 B、由用户直接调用

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/3216412709.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复习习题答案

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程序设计》课程试卷 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[a.length-1]; (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( ) 11.Java源文件和编译后的文件扩展名分别为( B ) (A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java

Java试题及答案

1、在中如果声明一个类为,表示什么意思? 答:是最终的意思,可用于定义变量、方法和类但含义不同,声明为的类不能被继承。 2、父类的构造方法是否可以被子类覆盖(重写)? 答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。 3、请讲述和的区别。 答:类所定义的对象是用于存放“长度固定”的字符串。 类所定义的对象是用于存放“长度可变动”的字符串。

4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢? 答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。 5、结合视频5(多线程),分析()和()方法的区别。 答:睡眠的意思 : () 方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。 等待的意思: 如果调用了 () 方法,线程将处于等待状态。 用于在两个或多个线程并发运行时。 6、谈谈你对抽象类和接口的理解。 答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。 他使用来继承。 接口:一个接口允许一个类从几个接口继承而来,程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是来实现。 7. 的接口和的虚类的相同和不同处。 由于不支持多继承,而有可能某个类或对象要使用分别在几

个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是,所有方法默认情况下是.一个类可以实现多个接口。 8. 垃圾回收的优点和原理。并考虑2种回收机制。 语言中一个显著的特点就是引入了垃圾回收机制,使程序员最头疼的内存管理的问题迎刃而解,它使得程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。 9.谈谈,,的区别。 -修饰符(关键字)如果一个类被声明为,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为的,又被声明为的。将变量或方法声明为,可以保证它们在使用中不被改变。被声明为的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为的方法也同样只

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/3216412709.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.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值

相关文档
相关文档 最新文档