Java学习资料.docx
《Java学习资料.docx》由会员分享,可在线阅读,更多相关《Java学习资料.docx(51页珍藏版)》请在冰豆网上搜索。
![Java学习资料.docx](https://file1.bdocx.com/fileroot1/2023-2/17/3d98a7b7-1ebd-496d-8b6e-937d857e040b/3d98a7b7-1ebd-496d-8b6e-937d857e040b1.gif)
Java学习资料
JAVA试题(100道)
孟丽施2006-05-25
——————————————————————————————————————
题目1:
下面不属于基本类型的是:
(选择1项)
A)boolean
B)long
C)String
D)byte
题目2:
如下程序中:
(1)publicclassCharToInt
(2){
(3)publicstaticvoidmain(String[]args)
(4){
(5)inta,b=10;
(6)charc='语';
(7)a=b+c;
(8)System.out.println("结果是:
"+a);
(9)}
(10)}
下面的说法中正确的是:
(选择1项)
A)程序运行到第6行会出现编译错误,因为c为char类型,不能把一个汉字赋给一个字符型。
B)程序运行到第7行会出现编译错误,因为字符型与整型不能进行加法运算。
C)程序能够正常编译和运行,但是不会输出任何结果。
D)程序将字符型转换为unicode编码并和b的数值相加的和输出。
题目3:
下面的说法中,错误的是:
(选择1项)
A)在Java中标志符可以是字母、下划线、数字或$符号。
B)在Java中布尔类型不能和数字之间不能来回转换,即false和true不对应任何零或非零的值。
C)双精度类型double比单精度类型float具有更高的精度和更大的表示范围,但float类型具有速度快、占用内存小的优点。
D)在Java中布尔值可以用true或false来表示,但是同时也可以用1或0来表示。
题目4:
程序如下:
classTest
{
publicstaticvoidmain(String[]args)
{
inti=10;
while(i>0)
{
if((i--)%2==0)
{
System.out.println(i);
}
}
}
}
程序的输出结果是:
A)3579
B)97531
C)13579
D)死循环
题目5:
程序如下:
classTest
{
publicstaticvoidmain(String[]args)
{
inti=1000;
for(;;)
{
if(i>999)
{
_______________
}
}
}
}
下面对程序的横线处填写不同语句的分析正确的是:
(选择两项)
A)填充break使程序能够有退出循环的可能性。
B)填充continue将使程序成为死循环,永远无法退出循环。
C)填充continue使程序能够有退出循环的可能性。
D)填充break将使程序成为死循环,永远无法退出循环。
题目6:
程序如下:
inti=9;
switch(i)
{
default:
System.out.println("default");
case0:
System.out.println("zero");
break;
case1:
System.out.println("one");
case2:
System.out.println("two");
}
上面语句段的输出结果是:
(选择一项)
A)default
B)default,zero
C)errordefaultclausenotdefined
D)nooutputdisplayed
题目7:
下面的说法中错误的是:
(选择一项)
A)类是描述了同一类对象具有的数据和行为。
Java语言中的类将这些数据和行为进行封装,
形成了一种复合数据类型
B)在Java的类中可以有三类内容分别是数据的定义、
基本输出语句、函数的定义。
C)Java中的封装就是将对象的数据和操作数据的方法相结合,
通过方法将对象的数据和实现细节保护起来。
D)Java语言中的多态的含义可以表达为:
对外一个接口,内部多种实现。
Java语言支持两种多态:
运行时多态和编译时多态。
题目8:
程序如下:
publicclassDemoextendsBase
{
privateintcount;
publicDemo()
{
System.out.println("ADemoobjecthasbeencreated");
}
protectedvoidaddOne()
{
count++;
}
}
有关类Demo,描述正确的是:
(选择1项)
A)当创建一个Demo类的实例对象时,count的值为0。
B)当创建一个Demo类的实例对象时,count的值是不确定的。
C)超类对象中可以包含改变count值的方法。
D)Demo的子类对象可以访问count。
题目9:
程序如下:
classTest
{
privateintday;
privateintmonth;
publicStringgetDate()
{
returnday+"/"+month;
}
}
classTest2
{
publicstaticvoidmain(String[]args)
{
Testtest=newTest();
test.day=25;
System.out.println(test.getDate());
}
}
有关类的描述正确的是:
(选择1项)
A)程序在编译时将出错。
在Test中的day为私有变量,
所以类外无法访问。
B)程序能通过编译,但是不能正常运行。
C)程序能通过编译,运行时将打印出0/0,因为在Java中int型变量day和month默认为0。
D)以上说法都不正确。
题目10:
下面关于继承的描述正确的一项是:
(选择1项)
A)子类继承父类,那么子类将继承父类的所有内容包括构造方法。
B)子类继承父类,那么子类可以重写父类的方法,
但是一旦重写父类方法后,无法通过子类访问到父类的该方法。
C)子类继承父类,如果父类中只有一个构造方法并且有参数,
那么在子类的构造方法中必须先用super调用父类构造方法并传参。
D)以上说法都不正确。
题目11:
程序如下:
classTest
{
privateintday;
publicintmonth;
privateTest()
{
System.out.println("IamTest");
}
privatevoidprint()
{
System.out.println("IamprintinTest");
}
voidshowme()
{
print();
}
}
classTestDemo
{
publicstaticvoidmain(String[]args)
{
Testt=newTest()
______________
}
}
下面关于类描述错误的一项是:
A)Test类的对象t不能直接访问print方法。
但是可以通过showme方法来间接调用
print()方法。
B)Test类的对象t可以直接访问month变量,但是不能直接访问day变量,因为day为私有变量,只有类内可以访问。
C)该程序能通过编译并运行,但是如果想得到输出“IamprintinTest”的结果,需要在横线处填写t.showme()。
D)该程序无法通过编译,因为在Test类中的构造方法被写成私有,那么Testt=newTest()
将无法找到合适的构造方法。
题目12:
程序如下:
classTest
{
privateintday;
privateTest(intd)
{day=d;}
privatevoidprint()
{System.out.println("IamprintinTest");}
}
classTest2extendsTest
{
Test()
{
__
(1)__
}
voidshow()
{
(2)
}
}
下面说法中正确的是:
(选择1项)
A)如果想使程序能够正常运行,在
(1)处必须填写super()方法,并且在super中传参给父类且同时该语句必须为Test()构造方法中的第一句。
B)如果想使程序能够正常运行,在
(1)处必须填写super()方法,但是该方法处于Test()构造方法中的任何位置均可以。
C)在show()方法中无法调用父类的print()方法。
D)在show()方法中可以为day进行赋值,因为Test2继承了Test,则在Test2中也继承了父类的day变量。
题目13:
下面哪个关键字,使类不能在被其他的类继承?
(选择1项)
A)static
B)finally
C)final
D)instance
题目14:
程序如下:
Strings1=newString("Hello");
Strings2=newString("there");
Strings3=newString();
下面哪个是合法的操作符?
(选择1项)
A)s3=s1+s2;
B)s3=s1-s2;
C)s3=s1&s2;
D)s3=s1&&s2
题目15:
下列描述中错误的是:
(选择1项)
A)在一个类的声明里声明的类,也叫做内部类或嵌套类,
内部类可以作为外包类的一个成员使用,
可以访问外包类的所有成员,包括私有成员。
B)内部类的访问权限可以被定义为public、protected、
private和default。
但是普通类只可以定义public和
default两种访问权限。
C)内部类的访问权限可以被定义为public、protected、
private和default。
普通类也可以定义上面四种访问权限,
但是通常我们只应用public和default两种访问权限。
题目16:
程序如下:
abstractclassMineBase
{
abstractvoidamethod();
staticinti;
}
publicclassMineextendsMineBase
{
publicstaticvoidmain(Stringargv[])
{
int[]ar=newint[5];
for(i=0;i System.out.println(ar[i]);
}
}
上面程序运行结果是:
(选择1项)
A)打印5个0
B)编译出错,数组ar[]必须初始化
C)编译出错,Mine应声明为abstract
D)出现IndexOutOfBounds的异常。
题目17:
下面关于抽象类描述错误的是:
(选择1项)
A)抽象类的关键字是abstract,在抽象类中可以定义变量和方法。
B)抽象类中的方法如果没有实现体,
则该方法叫做抽象方法必须加关键字abstract修饰该方法。
C)抽象类中至少需要有一个方法被定义为抽象方法,
在该方法前加abstract,把该方法定义为抽象方法。
D)抽象类中可以没有抽象方法,即所有的方法全部都有实现体。
但是依旧不能为抽象类定义对象。
题目18:
下面关键字中,如果同时出现时,必须放在第一位的是:
(选择1项)
A)interface
B)package
C)import
D)class
题目19:
下面关于接口的描述错误的是:
(选择1项)
A)定义接口的关键字为interface,接口中可以定义变量,
但是必须同时为该变量赋值,
接口中的方法默认全部为public类型。
B)实现接口的关键字是implements,其后可以跟多个接口
的名字,即实现多继承。
一个类实现了接口,那么必须实
现接口中的所有方法。
C)类实现了接口,必须实现接口中的所有方法,并且接口中
的所有方法均为public,在实现类中不可以削弱接口中
方法的访问权限。
D)类实现了接口,实现接口中的方法时可以重写该方法的
访问权限,但是无法改变接口中变量的值。
题目20:
下面关于接口和抽象类的说法中正确的是:
A)抽象类使类与类之间依旧具有父子联系,而接口一般只
是定义了一种规范,并不使实现的接口之间具有父子关系。
B)可以为抽象类定义对象,但是不能为接口定义对象。
C)抽象类与接口的用法几乎都相同,具体用哪一个方法,
只是在于程序设计人员的编程习惯而已。
D)在Java中,最多使用的是抽象类,因为应用抽象类也可
以实现多继承。
而接口已经被限制使用。
题目21:
程序如下:
interfaceEo
{
doublePI=3.1415926;
}
abstractclassA
{
voidshow()
{
System.out.println("我是抽象类");
}
__
(1)____voidduandian();
}
__
(2)___classCextendsA
{
voidshoo()
{
System.out.println("dafsdasd");
}
}
classDextendsCimplementsEo
{
voidduandian()
{
System.out.println("我是子类c"+PI);
}
}
classB
{
publicstaticvoidmain(String[]args)
{
Dt=newD();
t.duandian();
}
}
下面完善上面程序
(1)和
(2)处的方法中正确的是:
(选择1项)
A)
(1)abstract
(2)public
B)
(1)public
(2)public
C)
(1)public
(2)abstract
D)
(1)abstract
(2)abstract
题目22:
下面关于重载描述错误的是:
(选择1项)
A)重载方法的返回值必须相同。
B)重载方法的参数必须有不同之处。
C)重载方法的名字必须相同,否则就不能称为重载了。
D)重载方法的返回类型相不相同都可以。
题目23:
程序如下:
classA
{
staticintcount=0;
intnumber=0;
A()
{
System.out.println("我是构造函数");
count++;
number++;
}
}
classtest
{
publicstaticvoidmain(String[]args)
{
At1=newA();
At2=newA();
At3=newA();
System.out.println(t3.count);
System.out.println(t3.number);
}
}
下面说法中正确的是:
(选择1项)
A)输出结果为:
count=1,number=3
B)输出结果为:
count=3,number=0
C)输出结果为:
count=0,number=0
D)输出结果为:
count=3,number=1
题目24:
下面关键字哪个是异常处理语句中无论任何情况下都会被执行的关键字:
(选择1项)
A)final
B)finally
C)finalize
D)catch
题目25:
下面是数组下标越界异常的是:
A)ArithmeticException
B)ArrayIndexOutOfBoundsException
C)ArrayStoreException
D)OutOfMemoryException
题目26:
垃圾回收机制中,系统无法回收的是:
(选择1项)
A)那些NULL对象
B)当窗体显示的时候,指向窗体的对象。
C)系统资源紧张的时候,一些垃圾资源
题目27:
下列关于构造方法的说法中错误的是:
(选择1项)
A)构造方法的可以被重载。
B)构造方法不可以有返回类型,但是可以有参数。
C)构造方法的名字必须与类名相同。
D)构造方法不可以被覆盖。
题目28:
所有的异常类皆继承哪一个类?
(选择1项)
A)java.io.Exception
B)java.lang.Throwable
C)java.lang.Exception
D)java.lang.Error
题目29:
程序如下:
publicclassFoo
{
publicstaticvoidmain(String[]args)
{
try
{
return;
}
finally
{
System.out.println("Finally");
}
}
}
上面程序段的执行结果是:
(选择1项)
A)程序正常运行,但不输出任何结果。
B)程序正常运行,并输出"Finally"
C)编译能通过,但运行时会出现一个异常。
D)因为没有catch语句块,所以不能通过编译。
题目30:
下面关于修饰符权限的说法中错误的是:
(选择1项)
A)public说明该类成员可被所有类的对象使用。
B)protected说明该类成员能被同一类中的其他成员、或其子类成员访问,但不能被同一包中的其他类或其他包的非子类访问。
C)默认的说明该类成员能被同一类中的其他成员、或同一包中的其他类访问但不能被包之外的其他类访问。
D)private说明该类成员只能被同一类中的其他成员访问,不能被其他类的成员访问,也不能被子类成员访问。
题目31:
下面关于多态的说法中不正确的是:
(选择1项)
A)子类不能覆盖超类中的final或 static方法。
B)子类覆盖超类中同名方法时,子类方法声明必须与超类被覆盖方法的声明一样。
C)方法重载中参数必须不同,即可以参数个数不同,也可以类型不同;
D)子类必须覆盖超类中的abstract方法。
题目32:
下面关于数组的定义错误的是:
(选择1项)
A)inta[]={1,2,3,4,5,6};
B)inta[6]={1,2,3,4,5,6}
C)int[][]a;
D)int[]a=newint[6];
题目33:
程序如下:
classTest
{
publicstaticvoidmain(String[]args)throwsArithmeticException
{
Demotest=newDemo();
test.div(52,0);
System.out.println("我没罪");
}
}
classDemo
{
publicvoiddv(intx,inty)throwsArithmeticException
{
System.out.println(x/y);
}
publicvoiddiv(intx,inty)throwsArithmeticException
{
try
{
dv(x,y);
}
catch(ArithmeticExceptione)
{
System.out.println("我是主犯");
}
}
}
运行上面的程序输出结果是:
(选择1项)
A)我是主犯我没罪
B)我没罪我是主犯
C)52/0我是主犯我没罪
D)程序将抛出异常。
题目34:
程序如下:
classDemo
{
publicstaticvoidmain(String[]args)
{
day02a=newday02();
a.y=45;
a.tt();
}
}
classday01
{
privateintd;
protectedinth;
publicinty;
publicday01(inta1,inta2)
{
d=a1;
h=a2;
}
publicvoidtt()
{
System.out.println("我是day01"+d+h+y);
}
}
classday02extendsday01
{
intc;
day02()
{
this(4,9,8);
}
day02(intb1,intb2,intb3)
{
super(b1,b2);
c=b3;
}
publicvoidtt()
{
System.out.println("我是day025"+c);
}
}
运行程序,输出结果为:
(选择1项)
A)我是day0259
B)我是day014925
C)我是day0258
D)我是day012945
题目35:
下面关于数据类型的默认值的说法中不正确的是:
(选择1项)
A)char类型的默认值为:
’\u0000’
B)boolean类型的默认值为:
false
C)float和double类型的默认值为:
0.0
D)int\short\long类型的默认值为:
0
E)引用类型的默认值为:
null
题目36:
下列标识符中合法的一项是:
A)2variable
B)variable2
C)$another*var
D)#myvar
题目37:
程序如下:
publicclassTest
{
publicstaticvoidmain(String[]args)
{
At=newA();
t.print();
}
}
classA
{
privateinta;
privateintb;
A()
{
this(250,52);
}
A(intt)
{
a=t;
}
A(intt,intw)
{
a=t+30;
b=w+50;
intm;
m=a;
a=b;
b=m;
}
voidprint()
{
Syste