Java 选择题

1.下列选项中,不属于Java语言特点的一项是( C )。

A.分布式   B.安全性   C.编译执行   D.面向对象

2.在Java语言中,( C )是最基本的元素?

A.方法     B.包     C.对象    D.接口

3. 编译一个定义了3个类和10个方法的Java源文件后,会产生(  D  )个字节码文件?扩展名是(     )?

A.13个字节码文件,扩展名为.class

B.1个字节码文件,扩展名为.class

C.3个字节码文件,扩展名为.java

D.3个字节码文件,扩展名为.class

4. 在创建Applet应用程序时,需要用户考虑问题是(B

A.窗口如何创建

B.绘制的图形在窗口中的位置

C.程序的框架

D.事件处理

5. Java语言属于(B   )种语言?

A.面向机器的语言

B.面向对象的语言

C.面向过程的语言

D.面向操作系统的语言

6. 下列关于Application和Applet程序的说法中不正确的一项是(B)。

A.Application使用解释器java.exe

B.Application不使用独立的解释器

C.Applet在浏览器中运行

D.Applet必须继承Java的Applet类

7. 下列选项中,不属于Java核心包的一项是(A )。

A.javax.swing   B.java.io    C.java.utile    D.java.lang

8. 下列描述中,不正确的是(A)。

A.不支持多线程

B.一个Java源文件不允许有多个公共类

C.Java通过接口支持多重继承

D.Java程序分为Application和Applet两类

11. 编译Java程序时,用于指定生成class文件位置的选项是(A)。

A.-d   B.-g   C.-verbose   D.-nowarn

12.下列标识符(名字)命名原则中,正确的是(C )。

A.类名的首字母小写

B.接口名的首字母小写

C.常量全部大写

D.变量名和方法名的首字母大写

13.下面哪种注释方法能够支持javadoc命令?(C)

A.//     B./*...*/     C./**...*/      D./**...**/

14. 下面哪些选项是正确的main方法说明?(D)

A.void main()

B.private static void main(String args[])

C.public main(String args[])

D.public static void main(String args[])

15.下列( B)不是Java中的保留字?

A.if   B.sizeof   C.private   D.null

16.下列选项中,(B )不属于Java语言的基本数据类型?

A.整数型    B.数组    C.浮点型   D.字符型

17.下列关于基本数据类型的说法中,不正确的一项是(D )。

A.boolean类型变量的值只能取真或假

B.float是带符号的32位浮点数

C.double是带符号的64位浮点数

D.char是8位Unicode字符

18.下列关于基本数据类型的取值范围的描述中,正确的一个是(B )。

A.byte类型的取值范围是-128~128

B.boolean类型的取值范围是真或假

C.char类型的取值范围是0~65536

D.short类型的取值范围是-32767~32767

19.下列关于Java语言简单数据类型的说法中,正确的一项是(A)。

A.以0开头的整数代表8进制整型常量

B.以0x或0X开头的整数代表8进制整型常量

C.boolean类型的数据作为类成员变量的时候,相同默认的初始值为true

D.double型数据占计算机存储的32位

20.下列Java语句中,不正确的一项是(C )。

A.$e, a, b = 10;     B.char c, d = ‘a’;

C.float e = 0.0d;     D.double c = 0.0f;

21.在编写Java程序时,如果不为类的成员变量定义初始值,Java会给出它们的默认值,下列说法中不正确的一个是( D)。

A.byte的默认值是0

B.boolean的默认值是false

C.char类型的默认值是’\0’

D.long类型的默认值是0.0L

22.下列语句中不正确的一个是(B )。

A.float f = 1.1f;

B.byte b = 128;

C.double d = 1.1/0.0;

D.char c = (char)1.1f;

23.下列表达式1+2+ "aa"+3的值是(B )。

A."12aa3"    B."3aa3 "     C."12aa"     D."aa3"

24.已知a=2, b=3,则表达式a%b*4%b的值为(A )。

A.2     B.1      C.-1      D.-2

25.已知x=2, y=3, z=4,则经过z- = --y – x--运算后,z的值为(D )。

A.1     B.2      C.3         D.4

26.表达式(12==0) && (1/0 < 1)的值为(B )。

A.true     B.false      C.0      D.运行时抛出异常

27.设有类型定义short i=32; long j=64; 下面赋值语句中不正确的一个是(B )

A.j=i;     B.i=j;      C.i=(short)j;      D.j=(long)i;

28.现有1个char类型的变量c1=66和1个整型变量i=2,当执行c1=c1+(char)i;语句后,c1的值为(D )。

A.'d'     B.'D'      C.68      D.语句在编译时出错

29.下列说法中,正确的一项是(D)。

A.字符串"\\abcd" 的长度为6

B.False是Java的保留字

C.123.45L代表单精度浮点型

  1. False是合法的Java标识符

30.以下的变量定义语句中,合法的是(D )

A.float _*5 = 123.456F;

B.byte $_b1 = 12345;

C.int _long_ = 123456L;

D.double d = Double.MAX_VALUE;

31.下列关于运算符优先级的说法中,不正确的一个是(C )

A.运算符按照优先级顺序表进行运算

B.同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的

C.同一优先级的运算符在表达式中都是按照从右到左的顺序进行运算的

D.括号可以改变运算的优先次序

32.下列(D )不属于Java语言流程控制结构?

A.分支语句     B.跳转语句     C.循环语句      D.赋值语句

32.假设a是int类型的变量,并初始化为1,则下列(D )是合法的条件语句?

A.if(a){}    B.if(a<<=3){}    C.if(a=2){}    D.if(true){}

33.下列说法中,不正确的一个是(C )。

A.switch语句的功能可以由if…else if语句来实现

B.若用于比较的数据类型为double型,则不可以用switch语句来实现

C.if …else if语句的执行效率总是比switch语句高

D.case子句中可以有多个语句,并且不需要大括号{}括起来

34.设a、b为long型变量,x、y为float型变量,ch为char类型变量且它们均已被赋值,则下列语句中正确的是( B)。

A.switch(x+y) {}       B.switch(ch+1) {}

C.switch ch {}         D.switch(a+b); {}

35.下列循环体执行的次数是(C )。

int y=2, x=4;

while(--x != x/y){ }

A.1      B.2    C.3    D.4

36.下列循环体执行的次数是(B )。

int x=10, y=30;

do{ y -= x; x++; }while(x++<y--);

A.1    B.2    C.3    D.4

  1. 下列哪种类成员修饰符修饰的变量只能在本类中被访问?(D)

A.protected   B.public    C.default    D.private

39.在Java语言中,哪一个包中的类是自动导入的?(A)

A.java.lang    B.java.awt    C.java.io    D.java.applet

41.有一个类B,下面为其构造方法的声明,正确的是( B)。

A.void B(int x) {}       B.B(int x) {}

C.b(int x) {}            D.void b(int x) {}

42.下面关于类的说法,不正确的是(C )。

A.类是同种对象的集合和抽象

B.类属于Java语言中的复合数据类型

C.类就是对象

D.对象是Java语言中的基本结构单位

43.下面关于方法的说法,不正确的是(C )。

A.Java中的构造方法名必须和类名相同

B.方法体是对方法的实现,包括变量声明和合法语句

C.如果一个类定义了构造方法,也可以用该类的默认构造方法

D.类的私有方法不能被其他类直接访问

44.关于内部类,下列说法不正确的是(A )。

A.内部类不能有自己的成员方法和成员变量

B.内部类可用private或protected修饰符修饰

C.内部类可以作为其他类的成员,而且可访问它所在的类的成员

D.除static内部类外,不能在类内声明static成员

45.定义外部类时不能用到的关键字是(C 。

A.final。   B.public    C.protected    D.abstract

46.为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为(D )

A.abstract void f()     B.public void f()

C.final void f()        D.static void f()

47.定义一个公有double型常量PI,哪一条语句最好?(B )

A.public final double PI;

B.public final static double PI=3.14;

C.public final static double PI;

D.public static double PI=3.14;

50.下面关于接口的说法中不正确的是(C )。

A.接口中所有的方法都是抽象的

B.接口中所有的方法都是public访问权限

C.子接口继承父接口所用的关键字是implements

D.接口是Java中的特殊类,包含常量和抽象方法

51.区分类中重载方法的依据是( A)。

A.形参列表的类型和顺序

B.不同的形参名称

C.返回值的类型不同

D.访问权限不同

52.子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?(B )

A.能,能    B.能,不能     C.不能,能    D.不能,不能

53.Java语言类间的继承关系是( A)。

A.单继承

B.多重继承

C.不能继承

D.不一定

54.Java语言接口间的继承关系是( B)。

A.单继承

B.多重继承

C.不能继承

D.不一定

55.一个类实现接口的情况是( A)。

A.一次可以实现多个接口

B.一次只能实现一个接口

C.不能实现接口

D.不一定

56.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?(B )

A.不能引用,必须改名,使它们的名称不相同

B.在成员变量前加this,使用this访问该成员变量

C.在成员变量前加super,使用super访问该成员变量

D.不影响,系统可以自己区分

57.下面说法不正确的是(B )。

A.抽象类既可以做父类,也可以做子类

B.abstract和final能同时修饰一个类

C.抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口

D.声明为final类型的方法不能在其子类中重新定义

58.关于 for循环和 while循环的说法哪个正确?( B    )

A.while循环先判断后执行,for循环先执行后判断。

B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果

C.两种循环任何时候都不可以替换

D.两种循环结构中都必须有循环体,循环体不能为空

59.若在某一个类定义中定义有如下的方法: final void  workDial(B )该方法属于

A.本地方法 B.最终方法 C.静态方法 D.抽象方法

60.下面哪个方法与题目中的不是重载方法public int max(int x,int y)B

A.public double max(double x,double y) B.public int max(int n,int k)

C.public int max(int x,int  y, int z) D.public double max(double n,double k)

62.关于继承下面说法正确的是C

A.子类能够继承父类私有的属性; B.子类可以重写父类的final方法;

C.子类能够继承不同包父类的protected属性; D.子类能够继承不同包父类的缺省属性;

63.有名字为A的包和名为B的类,下面的语句正确的是C

A.package A.B; B.package B; C.import  A.* ; D.import  B;

64.声明一个名字为P的包,下面的语句正确的是C

  1. packagePkg; B.Package P; C.package P; D.package "p";

65.导入包A中的类AA应该使用下面哪条语句?A

A.import A.AA ; B.import AA.A; C.package A; D.package AA;

66.下列针对int类型的私有属性age的访问器方法格式正确的是?C

A.voidgetAge(int age) B.int getAge(int age) C.voidsetAge(int age) D.int setAge()

67.下列关于访问器方法说法正确的是?A

A.get方法可以读取属性的值 B.set方法用来读取属性的值

C.必须为每个private属性提供访问器方法 D.public属性不能有访问器方法

68.表示数据或方法可以只能被定义它的类访问的是C

A.public B.默认的 C.private D.protected

69..表示数据或方法只能被其它包中的子类访问的是D

  1. public B.默认的 C.private D.protected

70.对于子类的构造函数说明,下列叙述中不正确的是 ?D

A.子类无条件地继承父类的无参构造函数

B.子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句

C.在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数

D.子类不但可以自动执行父类的无参构造函数,也可以自动执行父类的有参构造函数

Java 判断题

1.Java语言具有较好的安全性和可移植性及与平台无关等特性。(✓)

2.Java语言的源程序不是编译型的,而是编译解释型的。(✓)

3.Java Application程序中,必有一个主方法main(),该方法有没有参数都可以。(✓)

4.java.util.Scanner(System.in)可以接收用户从键盘输入的简单数据。(✓)

5.Java程序中不区分大小写字母。(✘)

6.机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行。(✓)

7.System类中的println()方法分行显示信息,而print()方法不分行显示信息。(✓)

8.java命令不区分大小写,而javac命令区分大小写。(✘)

9.printf()和 format()方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流(System.out对象)中。(✓)

10.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。(✘)

11.Java语言使用的是Unicode字符集,每个字符在内存中占8位。( ✘)

12.Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。(✓ )

13.所有的变量在使用前都必须进行初始化。(✘ )

14.已知byte i = (byte)127; i = i +1;这两个语句能被成功编译。(✓ )

15.String str="abcdefghi"; char chr=str.charAt(9); (✘ )

16.char[] chrArray={ 'a', 'b', 'c', 'd', 'e', 'f', 'g'}; char chr=chrArray[6]; (✓ )

17.int i,j; boolean booleanValue=(i==j); (✘ )

18.int[] intArray[60]; (✘ )

19.说明或声明数组时不分配内存大小,创建数组时分配内存大小。(✓ )

20.强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。( ✓)

21.跳转语句包括break、continue、return和throw(✓)

22.switch语句先计算switch后面的 表达式 的值,再和各 case 语句后的值做比较。(✓)

23.if语句合法的条件值是 bool 类型。(✘)

24.continue语句必须使用于 循环 语句中。(✓)

25.break语句只有一种用途:是从循环语句内部跳出。(✘)

26.do - while和while一样,循环首先判断 表达式的值 。(✘)

27.与C++语言不同,Java语言不通过 goto 语句实现跳转。(✓)

28.每一个else子句都必须和它前面的一个距离它最近的 if 子句相对应。(✓)

29.在switch语句中,完成一个case语句块后,若没有通过break语句跳出switch语句,则会继续执行后面的 case 语句块。(✓)

30.在for循环语句中可以声明变量,其作用域是 for循环体 。(✓)

31.类是一种类型,也是对象的模板。( ✓)

32.类中说明的方法可以定义在类体外。(✘)

33.实例方法中不能引用类变量。(✘)

34.创建对象时系统将调用适当的构造方法给对象初始化。(✓)

35.使用运算符new创建对象时,赋给对象的值实际上是一个引用值。( ✓)

36.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值。( ✓)

37.对象可作方法参数,对象数组不能作方法参数。( ✘ )

38.class是定义类的唯一关键字。(✓)

39.Java语言会自动回收内存中的垃圾。(✓)

40.对象 是对事物的抽象,而 类 是对对象的抽象和归纳。(✓)

41.从用户的角度看,Java源程序中的类分为两种: 系统定义的类和用户自己定义的类 。(✓)

42.一个类主要包含两个要素: 数据成员 和 成员方法 。(✓)

43.创建包时需要使用关键字 package 。(✓)

44.当程序中需要引用java.awt.event包中的类时,导入该包中类的语句为 import java.awt.event.*。(✓)

45.类中的 构造 方法是一个特殊的方法,该方法的方法名和类名相同。(✓)

46.如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个默认构造方法。这个方法没有 形式参数 ,也没有任何 具体语句 ,不能完成任何操作。(✓)

47.静态数据成员被保存在类的内存区的 公共存储 单元中,而不是保存在某个对象的内存区中。因此,一个类的任何对象访问它时,存取到的都是 相同 (相同/不同)的数值。

48.静态数据成员既可以通过 对象名 来访问,也可以通过 类名 直接访问它。(✓)

49.定义常量时要用关键字 final ,同时需要说明常量的 数据类型并指出常量的具体值 。(✓)

50.方法体内定义变量时,变量前不能加 修饰符 ;局部变量在使用前必须明确赋值 ,否则编译时会出错;而类变量在使用前可以不用赋值,它们都有一个 默认的值。(✓)

51.static方法中只能引用 static 类型的数据成员和 static 类型的成员方法;而非static类型的方法中既可以引用 static 类型的数据成员和成员方法,也可以引用非static 类型的数据成员和成员方法。(✓)

52.引用static类型的方法时,可以使用 类名 做前缀,也可以使用 对象名 做前缀。(✓)

53.定义类时需要 class 关键字,继承类时需要 extends 关键字,实现接口时需要关键字 implements 。(✓)

54.消息就是向对象发出 服务请求 ,是对 数据成员 和 成员方法 的引用。(✓)

55.在面向对象系统中,消息分为两类 公有消息 和 私有消息 。(✓)

56.在面向对象程序设计中,采用 继承 机制可以有效地组织程序结构。充分利用已有的类来创建更复杂的类,大大提高程序开发的效率,提高代码的复用率,降低维护的工作量。

57.数据成员的隐藏 是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员。(✓)

58.子类可以重新定义与父类同名的成员方法,实现对父类方法的 覆盖 。(✓)

59.子类在重新定义父类已有的方法时,应保持与父类完全相同的方法名、返回值类型和参数列表 ,否则就不是方法的覆盖,而是子类定义自己特有的方法,与父类的方法无关。(✓)

60.this代表了当前对象的一个引用,super表示的是当前对象的直接父类对象的引用。(✓)

61.抽象类不能创建对象,该工作由抽象类派生的非抽象子类来实现。(✓)

62.如果父类中已有同名的abstract方法,则子类中就不能(能/不能)再有同名的抽象方法。(✓)

63.abstract类中不能有 private 访问权限的数据成员或成员方法。(✓)

64.interface 是声明接口的关键字,可以把它看成一个特殊类。接口中的数据成员默认的修饰符是public static final ,接口中的成员方法默认的修饰符是 public abstract 。(✓)

65.如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须 实现 该接口的所有抽象方法;如果实现某接口的类是abstract的抽象类,则它可以 不实现 该接口所有的方法。但是对于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法以及自身所实现接口中的抽象方法都必须有实在的 方法体 。(✓)

66.包的作用有两个,一是 划分类名空间 ,二是 控制类之间的访问 。(✓)

67.封装也称信息隐藏 ,是指类的设计者只为类的使用者提供类的可以访问的部分(包括类的数据成员和成员方法),而把类中的其他成员隐藏起来,使用户不能访问的机制。(✓)

68.Java提供了4种访问权限来实现封装机制,即private 、 protected 、默认和public 。(✓)

69.Java中提供两种多态机制, 重载 与 覆盖 。(✓)

70.当一个构造方法需要调用另一个构造方法时,可以使用关键字 this ,同时这个调用语句应该是整个构造方法的 第一条 可执行语句。(✓)

71.如果子类自己没有构造方法,那么父类也一定 没有 (有/没有)带参的构造方法,此时它将继承父类的 无参构造方法 作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行 父类 的构造方法,然后再执行自己的 构造方法 。(✓)

72.对于父类的含参数构造方法,子类可以通过在自己的构造方法中使用 super 关键字来调用它,但这个调用语句必须是子类构造方法的 第一条 可执行语句。(✓)

73.创建一个名为myPachkage的包的语句为 package myPackage; ,该语句应该放在程序第一行 位置。(✓)

74.Java语言中,构造方法是不可以继承的。(✓ )

75.子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目。(✘ )

76.抽象方法是一种只有说明而无具体实现的方法。(✓ )

77.Java语言中,所创建的子类都应有一个父类。(✓ )

78.调用this 或super构造方法的语句必须放在第一条语句。(✓ )

79.一个类可以实现多个接口,接口可以实现“多重继承”。 ( ✓)

80.实现接口的类不能是抽象类。( ✓)

81.Java 语言不允许同时继承一个类并实现一个接口。(✘ )

使用构造方法只能给实例成员变量赋初值。( ✓)

Java 简答题

1、String是最基本的数据类型吗?

答:基本数据类型包括byte、int、char、long、float、double、boolean和short。java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类。

2、面向对象的特征有哪些方面?简述每个特征。

3、int 和 Integer 有什么区别?

答:Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

4、String 和StringBuffer的区别?

答:JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。

5、运行时异常与一般异常有何异同?

答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

6、final, finally, finalize的区别?

答:final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

7、sleep() 和 wait() 有什么区别?答:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

8、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

9、abstract class和interface有什么区别?答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

10、启动一个线程是用run()还是start()?答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

11、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。12、数组有没有length()这个方法? String有没有length()这个方法?答:数组没有length()这个方法,有length的属性。String有有length()这个方法。

13、构造器Constructor是否可被override?答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

14、是否可以继承String类?答:String类是final类故不可以继承。15、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?答:switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。16、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?答:会执行,在return前执行。17、简述Java多态性的概念,隐藏、覆盖和重载的概念及使用时应注意的问题。

答:多态性:在一个类中可以定义多个同名方法,有静态多态性和动态多态性。

隐藏:子类重新定义了父类中的同名成员变量。被隐藏的父类成员变量在子类中仍然占有存储空间。

覆盖:子类重新定义了父类的同名成员方法,要求方法名、参数和返回类型都相同。与隐藏不同,此时子类方法将替换掉同名的父类方法,清除父类方法在子类中占有的空间。

重载:在同一个类中定义多个同名但参数不同的方法,参数不同是指个数、类型或顺序不同。

注意事项:

不能覆盖父类的static方法和final方法。

可以隐藏父类的static方法,即在子类中声明同名static方法。

非Static方法不能隐藏,只能覆盖。

子类必须覆盖父类的abstract方法。

18、什么是事件、事件源和事件监听器?简述使用事件监听器进行事件处理的过程。

答:事件:对界面的某种操作,如按键、单击鼠标、鼠标移动等。

事件源:事件的产生者,通常是某一组件,如按钮等。

事件监听器:是某些事件的接口,其中定义了被监听的事件发生时系统要调用的方法。

事件处理过程由下面3步组成:

①为类声明需要的事件监听器接口。

②给事件源注册一个事件监听器。

③实现接口声明中事件处理方法。

19、简述Java中构造方法的概念及特点。

答:构造方法:构造方法是一种特殊的方法,用于初始化对象。

特点:①构造方法与类同名,可以有参数 ,也可无参数。

②构造方法没有返回值,在方法前也不需要写void。

③创建对象时,系统自动调用构造方法。

④用户在程序中不能直接调用构造方法,只能通过new操作符调用。

⑤一个类可以有多个同名构造方法,但参数必须不同。所谓参数不同是指:

⑥类中可以不定义构造方法,此时Java提供一个默认的无参数构造方法

20、简述Java中接口的概念及接口的性质?

答:Java语言规定,类只能实现单继承,但接口可以实现多重继承。接口中定义的方法都是抽象方法,定义的所有域都是常量。

因此接口可以看作是没有实现的方法和常量的集合。使用接口主要是解决Java语言不支持多重继承的问题。

性质:①接口不提供代码重用性。因为接口中的方法都是没有实现的方法,因此所有的方法体都要自己编写。

②接口可以通过多继承进行扩展。

③接口不能升级,即提供给用户的接口不能再改变。