java基础及面向对象试题.docx
- 文档编号:28563598
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:14
- 大小:40.11KB
java基础及面向对象试题.docx
《java基础及面向对象试题.docx》由会员分享,可在线阅读,更多相关《java基础及面向对象试题.docx(14页珍藏版)》请在冰豆网上搜索。
java基础及面向对象试题
JAVA基础
1、变量命名有哪些规定?
2、指出下面程序中的编译错误,并更正
intlenght=10;System.out.println(length;
int&size=2;System.out.println(&size;
intage;System.out.println(age;
3、指出下面程序运行输出结果
inti=100,j=200;
booleanb=(i>j&&(i++>100;
System.out.println(b;System.out.println(i;
4、指出下面运行输出结果
inta=100;
Stringmsg=“a=”+a;
System.out.ptintln(msg;
msg=“”+100+200;
System.out.ptintln(msg;
msg=100+200+””;
System.out.ptintln(msg;
5、请简述for语句的执行流程
for(表达式1;表达式2;表达式3{
语句块
}
6、输出2-100之内的所有质数
7、冒泡排序
8、随机生成长度为5的int类型的数组,并输出
9、什么是类
参考答案:
类是一个概念(名词抽象的定义。
类定义了该类型对象的数据结构,称之为“成员变量”,同时,也定义了一些可以被调用的功能,称之为“方法”。
类是用于构建对象的模板,对象的实质就是内存中一块存储区域,其数据结构由定义它的类来决定。
10、简述JVM内存结构堆,栈和方法区别,分别存储的内容
参考答案:
JVM会在其内存空间中开辟一个称为“堆”的存储空间,这部分空间用于存储使用new关键字创建的对象。
栈用于存放程序运行过程当中所有的局部变量。
一个运行的Java程序从开始到结束会有多次方法的调用。
JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间称为该方法的栈帧。
一个栈帧对应一个正在调用中的方法,栈帧中存储了该方法的参数、局部变量等数据。
当某一个方法调用完成后,其对应的栈帧将被清除。
方法区该空间用于存放类的信息。
Java程序运行时,首先会通过类装载器载入类文件的字节码信息,经过解析后将其装入方法区。
类的各种信息都在方法区保存。
11、什么是方法的重载
参考答案:
在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload。
编译器在编译时会根据其参数的不同,绑定到不同的方法。
12、什么是构造方法
参考答案:
在Java语言中可以通过构造方法实现对对象成员变量的初始化。
构造方法是在类中定义的方法。
但不同于其他的方法,构造方法的定义有如下两点规则:
1.构造方法的名称必须与类名同名。
2.构造方法没有返回值,但也不能写void。
13、重写和重载的区别
参考答案:
重载遵循所谓“编译期绑定”,即在编译时根据参数变量的类型判断应该调用哪个方法。
重写遵循所谓“运行期绑定”,即在运行的时候根据引用变量指向的实际对象类型调用方法。
14、下面哪种情况属于方法重载
A)方法名相同,参数类型与个数不同
B)方法参数类型相同
C)方法参数个数相同
D)方法返回类型相同
E)方法名相同,方法参数类型与个数也相同
15、如果一个子类要继承父类,需要使用哪个关键字
A)thisB)superC)publicD)extends
16、classCard{}下列不属于Card类的构造方法的是:
A.Card({}
B.publicCard({}
C.publicvoidCard({}
D.privateCard({}
17、下列说法正确的是:
classCalssA{
publicintnumberOfinstances;
protectedClassA(intnumberOfinstances{
this.numberOfinstances=numberOfinstances;
}}
PublicclassExtendedAextendsClassA{
privateExtendedA(intnumberOfinstances{
super(numberOfinstances;
}
publicstaticvoidmain(String[]ages{
ExtendedAext=newExtendedA(420;
System.out.print(ext.numberOfinstances;
}}
A.运行后,输出420
B.运行时抛出异常
C.编译错误,所有的构造器必须是public的
D.编译错误,构造器不能private的
18、下列不属于java语言特征的是:
A.平台无关
B.面向对象
C.支持指针类型
D.垃圾回收机制
19、下列代码的输出结果是:
(
publicclassA{Publicvoidinfo({System.out.println(“Ainfo”;}}
publicclassBextendsA{publicvoidinfo({System.out.println(“Binfo”}
Publicstaticvoidmain(String[]ages{Bb=newB(;Aa=b;a.info(;}}
A.BinfoAinfo
B.AinfoBinfo
C.Ainfo
D.Binfo
20、下列输出结果是:
classFoo{publicstaticvoidtest({System.out.println("Foo";}}
classMooextendsFoo{publicstaticvoidtest({System.out.println("Moo";}}
publicstaticvoidmain(String[]args{Fooff=newMoo(;ff.test(;}
21、以下描述不正确的是?
()
A.finalclass不能被继承
B.final变量不能被修改
C.final成员变量不可以在构造方法中赋值
D.final方法不能被覆盖(overriden
22、以下描述不正确的是?
A.abstractclass一定有abstractmethod(s
B.abstractclass可以没有abstractmethod(s
C.定义abstractclass的目的是为了被继承
D.interface中定义的方法全是abstractmethods
E.interface中定义的变量全部是finalstatic变量
23、一个匿名内部类不可能是?
A.继承其他的类
B.实现了某一接口
C.定义了构造方法
D.可以使用成员变量
24、下面关于java语言中方法的说法错误的是:
A.方法调用时参数类型必须符合方法的定义
B.参数传递是值传递的方式
C.如果方法没有返回值必须声明返回为void
D.如果方法定义为返回void,则方法中不能出现return语句
25、下面运行的结果是:
publicclassFoo{ publicStringdoit(intx,inty{ return"a"; }
publicStringdoit(int[]vals{ return"b"; }
publicstaticvoidmain(String[]args{ Foof=newFoo(; System.out.println(f.doit(4,5; }}
A.代码publicStringdoit(int[]vals{行,编译出错
B.代码System.out.println(f.doit(4,5;行,抛出运行时异常
C.输出:
a
D.输出:
b
26、关于下列代码说法正确的是:
publicclassFoo{
publicintadd(inta,intb{
returna+b;
}
publicstaticvoidmain(String[]args{
Foofoo=null;
System.out.println(foo.add(10,20;
}
}
A.编译错误
B.正常运行,但无结果输出
C.运行输出:
30
D.运行时抛出NullPointerException异常
27、下列说法正确的有:
A.class中的constructor不可省略
B.constructor必须与class同名,但方法不能与class同名
C.constructor在一个对象被实例化时执行
D.一个class只能定义一个constructor
28、关于Java中继承的特点,下列说法正确的是:
A.使类的定义复杂化
B.Java只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的
C.子类继承父类的所有成员变量和方法,包括父类的构造方法
D.不可以多层继承,即一个类不可以继承另一个类的子类
29、下列程序运行结果是?
30、请看下列代码
classClassA{}
classClassBextendsClassA{}
classClassCextendsClassA{}
publicclassTest{
publicstaticvoidmain(String[]args{
ClassAp0=newClassA(;
ClassBp1=newClassB(;
ClassCp2=newClassC(;
ClassAp3=newClassB(;
ClassAp4=newClassC(;
<插入代码>
}
}
下列选项中放置在<插入代码>处,使程序编译正确的是:
A.p0=p1;
B.p1=p2;
C.p2=p4;
D.p2=(ClassCp1;
31、程序输出的结果是
classOne{ publicOne({ System.out.print(1; }}
classTwoextendsOne{ publicTwo({ System.out.print(2; }}
classThreeextendsTwo{ publicThree({ System.out.print(3; }}
publicclassNumbers{ publicstaticvoidmain(String[]argv{ newThree(; }}
A.1 B.3 C.123 D.321
32、下面代码运行结果是:
publicclassAnimal{ publicStringnoise({ return"peep"; }
publicstaticvoidmain(String[]args{ Animalanimal=newDog(; Catcat=(Catanimal; System.out.println(cat.noise(; }}
classDogextendsAnimal{ publicStringnoise({ return"bark"; }}
classCatextendsAnimal{ publicStringnoise({ return"meow"; }}
A.peep
B.bark
C.meow
D.抛出运行时异常
33、下面代码运行结果是:
classSimpleCalc{ publicintvalue; publicvoidcalculate({ value+=7; }}
publicclassMultiCalcextendsSimpleCalc{ publicvoidcalculate({ value-=3; }
publicvoidcalculate(intmultiplier{ calculate(; super.calculate(; value*=multiplier; }
publicstaticvoidmain(String[]args{
MultiCalccalculator=newMultiCalc(;
calculator.calculate(2;
System.out.println("Valueis:
"+calculator.value;
}}
A.Valueis:
8
B.Valueis:
-8
C.Valueis:
12
D.Valueis:
-12
34、下列数组创建和初始化的方式不正确的是:
A.publicclassTest02{
staticfinalint[]a={100,200};}
B.publicclassTest02{
staticfinalint[]a;
static{
a=newint[2];
a[0]=100;
a[1]=200; }}
C.publicclassTest02{
finalint[]a;
publicTest02({
a=newint[2];
a[0]=100;a[1]=200; }}
D.publicclassTest02{
staticfinalint[]a;
staticvoidinit({
a=newint[3];
a[0]=100;
a[1]=200; }}
35、请看下列代码:
publicabstractclassA{ abstractvoida1(; voida2({ }}
classBextendsA{ voida1({ } voida2({ }}
classCextendsB{ voidc1({ }}
和
Ax=newB(;Cy=newC(;Az=newC(;
下列选项中属于多态形式调用方法的是:
A.x.a2(;
B.z.a2(;
C.z.c1(;
D.y.c1(;
36、程序执行的结果是:
publicclassTest{
intx=12;
publicvoidmethod(intx{
x+=x;
System.out.println(x;
}
publicstaticvoidmain(String[]args{
Testt=newTest(;
t.method(5;
}}
A.5 B.10 C.12 D.17
37、程序执行的结果是:
classFoo{ publicinta; publicFoo({ a=3; }
publicvoidaddFive({ a+=5; }}
classBarextendsFoo{
publicinta;
publicBar({
a=8; }
publicvoidaddFive({ this.a+=5; }}
publicclassTestFoo{
publicstaticvoidmain(String[]args{
Foofoo=newBar(;
foo.addFive(;
System.out.println("Value:
"+foo.a; }}
A.Value:
3
B.Value:
8
C.Value:
13
D.Value:
18
38、程序运行结果
publicclassTest{
publicstaticvoidmain(String[]args{
Childc=newChild(;
}}
classFather{
publicFather({
System.out.println("父类无参构造函数";
}
publicFather(Stringname{
System.out.println("父类有参构造函数";
}}
classChildextendsFather{
publicChild({
this("dd";
System.out.println("子类无参构造函数";
}
publicChild(Stringname{
super("dd";
System.out.println("子类有参构造函数";
}}
A.父类有参构造函数
子类有参构造函数
子类无参构造函数
B.父类无参构造函数
子类有参构造函数
子类无参构造函数
C.子类有参构造函数
子类无参构造函数
父类无参构造函数
D.子类无参构造函数
子类有参构造函数
父类无参构造函数
39、下列代码的运行结果是:
publicclassAnimal{
publicStringnoise({ return"peep"; }
publicstaticvoidmain(String[]args{
Catcat=null;
Animalanimal=newDog(;
if(animalinstanceofCat{
cat=(Catanimal;
System.out.println(cat.noise(;
}else{
System.out.println("animalisnotCat'sinstance";
}}}
classDogextendsAnimal{
publicStringnoise({
return"bark";
}}
classCatextendsAnimal{
publicStringnoise({
return"meow";
}}
A.peep
B.bark
C.meow
D.animalisnotCat'sinstance
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 基础 面向 对象 试题