Java自测题

判断题
1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free.
2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象.
3.有的类定义时可以不定义构造函数,所以构造函数不是必需的.
4.类及其属性,方法可以同时有一个以上的修饰符来修饰.
5.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点.
6.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法.
7.final类中的属性和方法都必须被final修饰符修饰.
8.最终类不能派生子类,最终方法不能被覆盖.
9.子类要调用父类的方法,必须使用super关键字.
10.一个Java类可以有多个父类.
11.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的.
12.一个类如果实现了某个接口,那么它必须重载该接口中的所有方法.
13.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行.
14.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法.
15.用"+"可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串.
16.使用方法length( )可以获得字符串或数组的长度.
17.设String对象s="Hello ",运行语句System.out.println(s.concat("World!"));后String对象s的内容为"Hello world!",所以语句输出为
Hello world!
18.创建Vector对象时构造函数给定的是其中可以包容的元素个数,使用中应注意不能超越这个数值.
19.所有的鼠标事件都由MouseListener监听接口的监听者来处理.
20.一个容器中可以混合使用多种布局策略.
21.Java中,并非每个事件类都只对应一个事件.
22.一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体.
23.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件.
24.Java Applet是由独立的解释器程序来运行的.
25.Java Applet只能在图形界面下工作.
26.Java的字符类型采用的是ASCII编码.
27.Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关
28.Applet是一种特殊的Panel,它是Java Applet程序的最外层容器.
29.子类的域和方法的数目一定大于等于父类的域和方法的数目.
30.System类不能实例化,即不能创建System类的对象.
31.用户自定义的图形界面元素也可以响应用户的动作,具有交互功能
32.Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象.
33.Vector类中的对象不能是简单数据类型.
34.Java中的String类的对象既可以是字符串常量,也可以是字符串变量.
35.容器是用来组织其他界面成分和元素的单元,它不能嵌套其他容器.

选择题
1,关于被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是( )
A 可以被三种类所引用:该类自身,与它在同一个包中的其他类,在其他包中的该类的子类
B 可以被两种类访问和引用:该类本身,该类的所有子类
C 只能被该类自身所访问和修改
D 只能被同一个包中的类访问
2,关于被私有访问控制符private修饰的成员变量,以下说法正确的是( )
A.可以被三种类所引用:该类自身,与它在同一个包中的其他类,在其他包中的该类的子类
B.可以被两种类访问和引用:该类本身,该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
3,关于被保护访问控制符protected修饰的成员变量,以下说法正确的是( )
A.可以被三种类所引用:该类自身,与它在同一个包中的其他类,在其他包中的该类的子类
B.可以被两种类访问和引用:该类本身,该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
4,下列关于修饰符混用的说法,错误的是( )
abstract不能与final并列修饰同一个类
abstract类中不可以有private的成员
abstract方法必须在abstract类中
static方法中能处理非static的属性
5,容器Panel和Applet缺省使用的布局编辑策略是( B )
A,BorderLayout B,FlowLayout C,GridLayout D,CardLayout
6,以下标识符中哪项是不合法的( )
BigMeaninglessName B,$int
C,1st D,$1
7,main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )
public static void main()
public static void main(String[ ] args)
C, public static int main(String[ ] arg)
D,public void main(String arg[ ])
8,执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的( )
A,x[24]为0 B,x[24]未定义 C,x[25]为0 D,x[0]为空
9,以下代码段执行后的输出结果为( )
int x=3; int y=10;
System.out.println(y%x);
A,0 B,1 C,2 D,3
10,以下哪个表达式是不合法的( )
A,String x="Hello"; int y=9; x+=y;
B,String x="Hello"; int y=9; if(x==y) { }
C,String x="Hello"; int y=9; x=x+y;
D,String x=null; int y=(x!=null)&&(x.length>0) x.length : 0
11,编译运行以下程序后,关于输出结果的说明正确的是 ( )
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println("value is"+ ((x>4) 99.9 : 9));
}
}
A,输出结果为:value is 99.99 B,输出结果为:value is 9
C,输出结果为:value is 9.0 D,编译错误
12,以下声明合法的是( )
A,default String s; B,public final static native int w( )
C,abstract double d; D,abstract final double hyperbolicCosine( )
13,关于以下application的说明,正确的是( c )
class StaticStuff
{
static int x=10;
static { x+=5;}
public static void main(String args[ ])
{
System.out.println("x=" + x);
}
static { x/=3;}
}
4行与9行不能通过编译,因为缺少方法名和返回类型
9行不能通过编译,因为只能有一个静态初始化器
编译通过,执行结果为:x=5
编译通过,执行结果为:x=3
14,关于以下程序代码的说明正确的是( 4 )
class HasStatic{
private static int x=100;
public static void main(String args[ ]){
HasStatic hs1=new HasStatic( );
hs1.x++;
HasStatic hs2=new HasStatic( );
hs2.x++;
hs1=new HasStatic( );
hs1.x++;
HasStatic.x- -;
System.out.println("x="+x);
}
}
5行不能通过编译,因为引用了私有静态变量
10行不能通过编译,因为x是私有静态变量
程序通过编译,输出结果为:x=103
程序通过编译,输出结果为:x=102
15,以下选项中循环结构合法的是( 3 )
while (int i<7)
{ i++;
System.out.println("i is "+i);
}
int j=3;
while(j)
{ System.out.println(" j is "+j);
}
int j=0;
for(int k=0; j + k !=10; j++,k++)
{ System.out.println(" j is "+ j + "k is"+ k);
}
int j=0;
do{
System.out.println( "j is "+j++);
if (j == 3) {continue loop;}
}while (j5)&& (s.append("there") . equals("False")))

System.out.println("value is "+s);
}
}
3,以下程序段的输出结果为 Message four .
int x=0,y=4, z=5;


else {
System.out.println("Message four");
}
4,以下程序段的输出结果为 .
int j=2;
switch ( j ) {
case 2:
System.out.print("Value is two.");
case 2+1 :
System.out.println("Value is three.");
break;
default:
System.out.println("value is "+j);
break;
}
阅读以下程序段:
class Parent
{
void printMe()
{
System.out.println("parent");
}
}
class Child extends Parent
{
void printMe()
{
System.out.println("child");
}
void printAll()
{
super.printMe();
this.printMe();
printMe();
}
}
public class Test_this
{
public static void main(String args[ ])
{
Child myC=new Child();
myC.printAll();
}
}
输出结果为:
6,以下程序段的输出结果为 false , true
public class EqualsMethod {
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1==n2);
System.out.print(",");
System.out.println(n1!=n2);
}
}
7,已有Bird类的定义如下:
package abcde;
public class Bird {
protected static int referenceCount=0;
public Bird(){ referenceCount++;}
protected void fly(){ }
static int getReCount(){return referenceCount;}
}
有类Nightingale的定义如下,请写出它的输出结果 .
package singers;
class Nightingale extends abcde.Bird {
Nightingale( ) { referenceCount++;}
public static void main( String args[ ]){
System.out.print("Before:"+referenceCount);
Nightingale florence=new Nightingale( );
System.out.println(" After:"+referenceCount);
florence.fly( );
}
}
8,以下程序段的输出结果为 .
class Cruncher{
void crunch( int i ){
System.out.println("int version");
}
void crunch(String s){
System.out.println("String version");
}
public static void main(String args[ ]){
Cruncher crun=new Cruncher ( );
char ch='p';
crun.crunch(ch);
}
}

没有评论: