CoreJava2Answer.docx
《CoreJava2Answer.docx》由会员分享,可在线阅读,更多相关《CoreJava2Answer.docx(15页珍藏版)》请在冰豆网上搜索。
CoreJava2Answer
试题类型:
单选题
试题1
已知变量a和obj的定义如下:
Object[]a1={"a","b","c"};
Objectobj=a1;
则下面语句运行时会抛出异常的是(C)。
A:
Object[]a2=(Object[])obj;
B:
Stringstr1=(String)((Object[])obj)[1]
C:
String[]a3=(String[])obj
D:
Stringstr2=(String)a1[2]
试题2
已知类Foo的定义如下:
publicclassFoo{
intvalue;
Foo(intvalue){
this.value=value;
}
}
运行下面程序段:
Foo[]a1={newFoo
(1),newFoo
(2),newFoo(3)};
Foo[]a2=newFoo[a1.length];
System.arraycopy(a1,0,a2,0,a1.length);
System.out.println((a1==a2)+","+(a1[1]==a2[1]));
控制台输出的结果是(A)。
A:
false,true
B:
false,false
C:
true,true
D:
true,false
试题3
已知类Foo的定义如下:
publicclassFoo{
intvalue;
Foo(intvalue){
this.value=value;
}
publicbooleanequals(Objectobj){
if(objinstanceofFoo){
Foofoo=(Foo)obj;
returnvalue==foo.value;
}else{
returnfalse;
}
}
运行下面程序段:
ArrayListlist=newArrayList();
HashSetset=newHashSet();
list.add(newFoo
(1));
set.add(newFoo
(1));
System.out.println(list.contains(newFoo
(1))+","
+set.contains(newFoo
(1)));
控制台输出的结果是(A)。
A:
true,false
B:
true,true
C:
false,false
D:
false,true
试题4
已知类A、B、C和接口D的定义如下:
publicclassA{…}
publicclassBextendsAimplementsD{…}
publicclassCextendsA{…}
publicinterfaceD{…}
变量a、b、c、d的定义如下:
Aa=newA();Bb=newB();
Cc=newC();Dd=null;
则下列语句会有编译错误的是(D)。
A:
a=b;
B:
d=b;
C:
d=(D)a;
D:
c=(C)b;
试题5
运行如下代码:
classCOne{
publicvoidf(){
System.out.println("COne.f");
}
}
classCTwoextendsCOne{
publicvoidf(){
System.out.println("CTwo.f");
}
}
classCThree{
publicvoidg(COneone){
System.out.println("g(Cone)");
one.f();
}
publicvoidg(CTwotwo){
System.out.println("g(Ctwo)");
two.f();
}
}
publicclassMain{
publicstaticvoidmain(String[]args){
COneone=newCTwo();
CThreethree=newCThree();
three.g(one);
}
}
控制台输出的结果是(A)。
A:
g(Cone)
CTwo.f
B:
g(Cone)
COne.f
C:
g(Ctwo)
CTwo.f
D:
g(Ctwo)
COne.f
试题6
运行如下代码
classFoo{
privateintvalue=5;
publicFoo(){
System.out.println("Foo()");
System.out.println(value);
}
}
classBarextendsFoo{
privateintvalue=10;
publicBar(){
System.out.println("Bar()");
System.out.println(value);
}
}
publicclassMain{
publicstaticvoidmain(String[]args){
Barbar=newBar();
}
}
控制台输出的结果是(B)。
A:
Bar()
10
Foo()
5
B:
Foo()
5
Bar()
10
C:
Bar()
5
Foo()
10
D:
Foo()
10
Bar()
5
试题7
实现Point类的equals方法,具体逻辑为:
“成员变量x和y分别相等的Point对象被视为相等”。
publicclassPoint{
privateintx;
privateinty;
...
publicbooleanequals(Objectobj){
<填入代码>
}
}
以下代码正确的是(D)。
A:
if(obj.x==this.x||obj.y==this.y){
returntrue;
}
returnfalse;
B:
if(obj.x==this.x&&obj.y==this.y){
returntrue;
}
returnfalse;
C:
if(!
(objinstanceofPoint))returnfalse;
if(((Point)obj).x==((Point)obj).y&&this.x==this.y){
returntrue;
}
returnfalse;
D:
if(!
(objinstanceofPoint))returnfalse;
if(((Point)obj).x==this.x&&((Point)obj).y==this.y){
returntrue;
}
returnfalse;
试题8
运行如下代码:
Listlist=newArrayList();
//向list中插入内容{1,2,3,4,5,6}
list.set(2,list.set(5,list.get
(2)))
System.out.println(list);
控制台的输出结果是(C)。
A:
[1,2,5,4,5,2]
B:
[1,5,3,4,2,6]
C:
[1,2,6,4,5,3]
D:
[1,2,3,4,5,3]
试题9
运行如下代码:
Listlist=newArrayList();
//向list中插入内容{1,2,3,4,5,6}
……
list.subList(2,5).clear();
System.out.println(list);
控制台的输出结果是(D)。
A:
[1,2,3,6]
B:
[1,2]
C:
[1,2,3]
D:
[1,2,6]
试题10
题示代码的功能为:
将两个有序的ArrayList合并为一个有序的ArrayList。
对于两个存放Integer对象的ArrayList,
内容分别为:
list1:
{1,3,4,6,8}和list2:
{2,5,9}
合并后的list3:
{1,2,3,4,5,6,8,9}
...
Listlist3=newArrayList();
intsize=list1.size()+list2.size();
for(inti=0,j=0,k=0;kif(j>=list2.size()||i&&list1.get(i)if([j>=list2.size()&&list1.get(i)&&list1.get(i)list3.add(list1.get(i++));
}else{
list3.add(list2.get(j++));
}
System.out.println(list3);
...}
完成该功能应该填入的代码是(B)。
A:
if(j>=list2.size()||i>list1.size()
&&list1.get(i)>list2.get(j)){
list3.add(list1.get(i++));
}else{
list3.add(list2.get(j++));
}
B:
if(j>=list2.size()||i&&list1.get(i)list3.add(list1.get(i++));
}else{
list3.add(list2.get(j++));
}
C:
if(j>=list2.size()&&i&&list1.get(i)list3.add(list1.get(i++));
}else{
list3.add(list2.get(j++));
}
D:
if(j>=list2.size()||i||list1.get(i)list3.add(list1.get(i++));
}else{
list3.add(list2.get(j++));
}
试题11
运行如下代码:
Stringss="abcdefcde";
inti=ss.indexOf("cde",3);
System.out.println(i);
控制台输出的结果是(A)。
A:
6
B:
3
C:
2
D:
7
试题12
运行如下代码:
Stringss="abcdefcde";
charcc=ss.charAt(3);
System.out.println(cc);
控制台输出的结果是(D)。
A:
b
B:
e
C:
c
D:
d
试题13
运行如下代码:
Stringss="abcdefcde";
Strings=ss.substring(2,4);
System.out.println(s);
控制台输出的结果是(B)。
A:
cdef
B:
cd
C:
cde
D:
bcde
试题14
下面说法正确的是A
A:
一个接口可以继承另外一个接口
B:
一个类只能实现一个接口
C:
Java语言支持多继承
D:
抽象类中的非抽象方法不可以调用其抽象方法
试题15
下面的代码用于输出字符数组ch中字符出现的种类和个数,应该填入的代码是(D)。
publicstaticvoidmain(String[]args){
char[]ch={'a','c','a','b','c','b'};
HashMapmap=newHashMap();
for(inti=0;i<填入代码>
if(map.containsKey(ch[i])){
map.put(ch[i],(Integer)map.get(ch[i])+1);
}else{
map.put(ch[i],1);
}
}
System.out.println(map);
}
A:
if(map.contains(ch[i])){
map.put(ch[i],map.get(ch[i])+1);
}else{
map.put(ch[i],1);
}
B:
if(map.contains(ch[i])){
map.put(ch[i],(Integer)map.get(ch[i])+1);
}else{
map.put(ch[i],1);
}
C:
if(map.containsKey(ch[i])){
map.put(ch[i],(int)map.get(ch[i])+1);
}else{
map.put(ch[i],1);
}
D:
if(map.containsKey(ch[i])){
map.put(ch[i],(Integer)map.get(ch[i])+1);
}else{
map.put(ch[i],1);
}
试题16
关于String和StringBuffer对象描述,错误的是D
A:
StringBuffer是可变对象,而String是不可变对象
B:
对字符串进行删除、插入等可变操作时一般使用StringBuffer
C:
String对象池的作用在于提升效率
D:
StringBuffer的append方法将返回一个全新的StringBuffer对象
试题17
已知静态方法random(intn)用于返回大于等于0且小于n的随机整数。
利用此函数实现对ArrayList的“洗牌”操作。
所谓“洗牌”操作,
即将ArrayList元素的位置随机打乱,使得ArrayList的每个元素的位置
在除原位置外的其他随机位置上。
应该填入的代码是B
publicclassshuffleUtils{
publicstaticvoidshuffle(ArrayListlist){
<填入的代码>for(inti=list.size();i>1;i--){
intj=random(i);
list.set(i-1,list.set(j,list.get(i-1));
}
}
publicstaticintrandom(intn){
………
}
}
A:
for(inti=list.size();i>1;i--){
intj=random(i);
list.set(j,list.get(i-1));
}
B:
for(inti=list.size();i>1;i--){
intj=random(i);
list.set(i-1,list.set(j,list.get(i-1));
}
C:
for(inti=list.size();i>1;i--){
intj=random(i);
list.set(i-1,list.get(j));
}
D:
for(inti=list.size();i>1;i--){
intj=random(i);
list.set(i,list.set(j,list.get(i));
}
试题18
ArrayList的初始化内容如下:
ArrayListlist=newArrayList();
list.add("java");
list.add("aaa");
list.add("java");
list.add("java");
list.add("bbb");
下面可以删除list中所有的“java”的代码是:
A
A:
for(inti=list.size()-1;i>=0;i--){
if("java".equals(list.get(i))){
list.remove(i);
}
}
B:
for(inti=0;iif("java".equals(list.get(i))){
list.remove(i);
}
}
C:
list.remove("java");
D:
list.removeAll("java");
试题19
下面字符串和正则表达式[JQK]{2}[a-z0-9]+匹配的字符串是C
A:
JQ
B:
JKK
C:
QQ001
D:
Q123abc
试题20
下面描述正确的是:
D
A:
str是字符串变量,“java”.equals(str)和Stringstr;str.equlas("java")在任何时候都是等价的
B:
成员访问修饰符按照可访问的范围由大到小的顺序是publicdefaultprotectedprivate
C:
abstract和final共同修饰一个类时,final应该放在abstract的前面
D:
当某一个类的int类型常量值(用staticfinal修饰)经过修改并重新编译后。
用到的该常量的其他类也必须重新编译后才能用的新修改后的值