JAVA基础面试题3答案版.docx
- 文档编号:28432140
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:23
- 大小:22.74KB
JAVA基础面试题3答案版.docx
《JAVA基础面试题3答案版.docx》由会员分享,可在线阅读,更多相关《JAVA基础面试题3答案版.docx(23页珍藏版)》请在冰豆网上搜索。
JAVA基础面试题3答案版
JAVA语言基础笔试题-3
Question1
Given:
1.publicclassTeamextendsjava.util.LinkedList{
2.publicvoidaddPlayer(Playerp){
3.add(p);
4.}
5.publicvoidcompete(Teamopponent){/*morecodehere*/}
6.}
7.classPlayer{/*morecodehere*/}
Whichtwoaretrue?
(Choosetwo.)
A.Thiscodewillcompile.
B.Thiscodedemonstratesproperdesignofanis-arelationship.
C.Thiscodedemonstratesproperdesignofahas-arelationship.
D.AJavaprogrammerusingtheTeamclasscouldremovePlayer
objectsfromaTeamobject.
答案:
AD
考点:
List接口实现,对象间泛化和关联关系
说明:
isa关系一般用继承来表示,但此题这个继承从逻辑上不是太恰当.
Hasa关系一般来说表示某对象体内有其它对象的存在,该对象体现为属性形态,在UML中叫做关联关系。
本题Team中虽然可以保存Player,但并非显式以属性形式存在。
由于LinkedList自带remove方法,可以通过Team.remove(p)来删除player对象。
Question2
Whichfouraretrue?
(Choosefour.)
A.Has-arelationshipsshouldneverbeencapsulated.
B.Has-arelationshipsshouldbeimplementedusinginheritance.
C.Has-arelationshipscanbeimplementedusinginstancevariables.
D.Is-arelationshipscanbeimplementedusingtheextendskeyword.
E.Is-arelationshipscanbeimplementedusingtheimplements
keyword.
F.TherelationshipbetweenMovieandActressisanexampleofanis-a
relationship.
G.Anarrayoracollectioncanbeusedtoimplementaone-to-many
has-arelationship.
答案:
CDEG
考点:
集合类型,对象间泛化和关联关系的理解
Hasa关系一般表示为一个类拥有一个属性,属性被封装是常见的事情。
Isa关系一般用继承来表示,子类体内拥有父类部分。
接口的实现,也适用于isa关系来理解,因为接口从本质来说,也属于类的形态。
Question3
Whichtwoaretrueabouthas-aandis-arelationships?
(Choosetwo.)
A.Inheritancerepresentsanis-arelationship.
B.Inheritancerepresentsahas-arelationship.
C.Interfacesmustbeusedwhencreatingahas-arelationship.
D.Instancevariablescanbeusedwhencreatingahas-arelationship.
答案:
AD
考点:
对象间泛化和关联关系的理解
Question4
Given:
10.interfaceJumper{publicvoidjump();}
......
20.classAnimal{}
......
30.classDogextendsAnimal{
31.Tailtail;
32.}
......
40.classBeagleextendsDogimplementsJumper{
41.publicvoidjump(){}
42.}
.......
50.classCatimplementsJumper{
51.publicvoidjump(){}
52.}
Whichthreearetrue?
(Choosethree.)
A.Catis-aAnimal
B.Catis-aJumper
C.Dogis-aAnimal
D.Dogis-aJumper
E.Cathas-aAnimal
F.Beaglehas-aTail
G.Beaglehas-aJumper
答案:
BCF
考点:
对象间泛化和关联关系的理解
Question5
Given:
1.importjava.util.*;
2.publicclassExample{
3.publicstaticvoidmain(String[]args){
4.//insertcodehere
5.set.add(newInteger
(2));
6.set.add(newInteger(l));
7.System.out.println(set);
8.}
9.}
Whichcode,insertedatline4,guaranteesthatthisprogramwill
output[1,2]?
A.Setset=newTreeSet();
B.Setset=newHashSet();
C.Setset=newSortedSet();
D.Listset=newSortedList();
E.Setset=newLinkedHashSet();
答案:
A
考点:
集合类型的概念,TreeSet的特性
说明:
此题从输出角度来看,属于天然顺序输出,目前只有TreeSet能达到该效果,同时Integer类也实现了Comparable接口,所以可以安全的在TreeSet中使用。
Question6
Given:
1.importjava.util.*;
2.publicclassPQ{
3.publicstaticvoidmain(String[]args){
4.PriorityQueue
5.pq.add(”carrot”);
6.pq.add(”apple”);
7.pq.add(”banana”);
8.System.out.println(pq.poll()+”:
”+pq.peek());
9.}
10.}
Whatistheresult?
A.apple:
apple
B.carrot:
apple
C.apple:
banana
D.banana:
apple
E.carrot:
carrot
F.carrot:
banana
答案:
C
考点:
集合类型,了解Queue接口的使用
说明:
Poll()从队列头部取值,该值从队列中删除;peek()并未实际取值,而仅是取得队列头部的元素。
Question7
Given:
1.importjava.util.*;
2.publicclassWrappedString{
3.privateStrings;
4.publicWrappedString(Strings){this.s=s;}
5.publicstaticvoidmain(String[]args){
6.HashSet
7.WrappedStringws1=newWrappedString(”aardvark”);
8.WrappedStringws2=newWrappedString(”aardvark”);
9.Strings1=newString(”aardvark”);
10.Strings2=newString(”aardvark”);
11.hs.add(ws1);hs.add(ws2);hs.add(s1);hs.add(s2);
12.System.out.println(hs.size());}}
Whatistheresult?
A.0
B.1
C.2
D.3
E.4
F.Compilationfails.
G.Anexceptionisthrownatruntime.
答案:
D
考点:
集合类型,hashset的理解,hashcode和equals调用契约
说明:
WrappedString类没有重写hashcode方法,那么这个类的两个对象在装入hashset的过程中,将会使用Object所提供的hashcode调用结果,由于Object的hashcode值均为不同,所以WrappedString两个对象全被hashset接收。
由于这里显式进行字符串构建,所以会创建两个独立的,有相同内容的字符串对象,但是由于String类已经完整重写了hashcode和equals方法,所以具有相同内容的两个对象,将无法同时保存入hashset.
Question8
ClicktheExhibitbutton.
1.importjava.util.*;
2.publicclassTestSet{
3.enumExample{ONE,TWO,THREE}
4.publicstaticvoidmain(String[]args){
5.Collectioncoll=newArrayList();
6.coll.add(Example.THREE);
7.coll.add(Example.THREE);
8.coll.add(Example.THREE);
9.coll.add(Example.TWO);
10.coll.add(Example.TWO);
11.coll.add(Example.ONE);
12.Setset=newHashSet(coll);
13.}
14.}
Whichstatementistrueaboutthesetvariableonline12?
A.Thesetvariablecontainsallsixelementsfromthecollcollection,
andtheorderisguaranteedtobepreserved.
B.Thesetvariablecontainsonlythreeelementsfromthecoll
collection,andtheorderisguaranteedtobepreserved.
C.Thesetvariablecontainsallsixelementsfromthecoilcollection,
buttheorderisNOTguaranteedtobepreserved.
D.Thesetvariablecontainsonlythreeelementsfromthecoil
collection,buttheorderisNOTguaranteedtobepreserved.
答案:
D
考点:
枚举类型,集合类型(ArrayList,HashSet)
Question9
Given:
1.publicclassScoreimplementsComparable
2.privateintwins,losses;
3.publicScore(intw,int1){wins=w;losses=1;}
4.publicintgetWins(){returnwins;}
5.publicintgetLosses(){returnlosses;}
6.publicStringtoString(){
7.return“<“+wins+“,“+losses+“>”;
8.}
9.//insertcodehere
10.}
Whichmethodwillcompletethisclass?
A.publicintcompareTo(Objecto){/*modecodehere*/}
B.publicintcompareTo(Scoreother){/*morecodehere*/}
C.publicintcompare(Scores1,Scores2){/*morecodehere*/}
D.publicintcompare(Objecto1,Objecto2){/*morecodehere*/}
答案:
B
考点:
Comparable接口的应用理解
说明:
任何实现了Comparable接口的类对象均可放置在TreeSet中使用,该接口只有一个方法,叫做CompareTo,同时该接口是泛型的,所以参数数据类型不应该是Object,而是Score类型。
Question10
Aprogrammerhasanalgorithmthatrequiresajava.util.Listthat
providesanefficientimplementationofadd(0,object),butdoes
NOTneedtosupportquickrandomaccess.Whatsupportsthese
requirements?
A.java.util.Queue
B.java.util.ArrayList
C.java.util.LinearList
D.java.util.LinkedList
答案:
D
考点:
List接口常见实现类的理解
说明:
LinkedList使用链表来进行对象的保存,虽然消耗内存空间较多,但是提供较高的插入和删除的性能。
Question11
Given:
11.publicclassPerson{
12.privateStringname,comment;
13.privateintage;
14.publicPerson(Stringn,inta,Stringc){
15.name=n;age=a;comment=c;
16.}
17.publicbooleanequals(Objecto){
18.if(!
(oinstanceofPerson))returnfalse;
19,Personp=(Person)o;
20.returnage==p.age&&name.equals(p.name);
21.}
22.}
WhatistheappropriatedefinitionofthehashCodemethodinclass
Person?
A.returnsuper.hashCode();
B.returnname.hashCode()+age*7;
C.returnname.hashCode()+comment.hashCode()/2;
D.returnname.hashCode()+comment.hashCode()/2-age*3;
答案:
B
考点:
Hashcode和equals的实现契约
说明:
Hashcode不同,equals一定不同;
Hashcode相同,equals可以不同。
以上为hashcode和equals的实现契约,这两个方法重写好了,该对象就可以存入hashset中,同时也可以做hashMap的key。
选项A:
在age,name都相同的情况下,hashcode仍然是不同的,是错误的。
选项CD:
因为comment并未参与equals判断,确参与了hashcode判断,显然无法满
足的契约的需求。
Question12
Given:
11.publicclassKey{
12.privatelongid1;
13.privatelong1d2;
14.
15.//classKeymethods
16.}
AprogrammerisdevelopingaclassKey,thatwillbeusedasakeyin
astandardjava.util.HashMap.Whichtwomethodsshouldbe
overriddentoassurethatKeyworkscorrectlyasakey?
(Choosetwo.)
A.publicinthashCode()
B.publicbooleanequals(Keyk)
C.publicintcompareTo(Objecto)
D.publicbooleanequals(Objecto)
E.publicbooleancompareTo(Keyk)
答案:
AD
考点:
对HashMap的Key的特点的理解
说明:
因为HashMap中的所有的key是使用Hashset来管理的,所以其内部所有的key对象均必须能够支持在HashSet环境下正常工作,所以实现hashcode和equals方法成为了必然。
这里要注意一点,equals方法不是泛型的,其参数数据类型为Object.
Question13
Given:
11.publicclassPerson{
12.privatename;
13.publicPerson(Stringname){
14.this.name=name;
15.}
16.publicbooleanequals(Objecto){
17.if(!
oinstanceofPerson)returnfalse;
18.Personp=(Person)o;
19.returnp.name.equals(this.name);
20.}
21.}
Whichistrue?
A.CompilationfailsbecausethehashCodemethodisnotoverridden.
B.AHashSetcouldcontainmultiplePersonobjectswiththesame
name.
C.AllPersonobjectswillhavethesamehashcodebecausethe
hashCodemethodisnotoverridden.
D.IfaHashSetcontainsmorethanonePersonobjectwith
name=”Fred”,thenremovinganotherPerson,alsowithname=”Fred”,
willremovethemall.
答案:
B
考点:
hashcode和equals的契约理解
说明:
一个类如果没有重写hashcode方法,将直接使用父类Object的HashCode方法,而Object的该方法,不同的对象均为不同的值。
用对象匹配删除的时候,无论这个对象的属性写的多么雷同,结果都删除不掉或者仅仅删除hashcode值匹配的那一个对象。
Question14
Given:
1.publicclassPerson{
2.privateStringname;
3.publicPerson(Stringname){this.name=name;}
4.publicbooleanequals(Personp){
5.returnp.name.equals(this.name);
6.}
7.}
Whichistrue?
A.TheequalsmethoddoesNOTproperlyoverridetheObject.equals
method.
B.Compilationfailsbecausetheprivateattributep.namecannotbe
accessedinline5.
C.Toworkcorrectlywithhash-baseddatastructures,thisclassmust
alsoimplementthehashCodemethod.
D.WhenaddingPersonobjectstoajava.util.Setcollection,theequals
methodinline4willpreventduplicates.
答案:
A
考点:
equals方法签名的理解
说明:
本题equals方法的签名书写是错误的,重写失败,此处应该算是对Object.equals方法的重载实现,所以在常规有应用equals的环境中,该方法是不会调用到的。
p.name属于从引用角度查看访问修饰符,是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 基础 试题 答案