JSD15考.docx
《JSD15考.docx》由会员分享,可在线阅读,更多相关《JSD15考.docx(40页珍藏版)》请在冰点文库上搜索。
![JSD15考.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/4fdd1347-3f24-41f7-9db8-b49a83f56a83/4fdd1347-3f24-41f7-9db8-b49a83f56a831.gif)
JSD15考
1.(单选题)分析如下语句,说法错误的是()。
A.break可用于跳出循环,当多层嵌套时,只用于跳出一层循环
B.break即可以出现在循环语句中也可以出现在switch语句中
C.continue可以用于跳出循环
D.continue不能出现在switch语句中
正确答案:
C
解析:
continue是跳出当次循环直接进入下一次循环,break是跳出循环
2.(单选题)请看下列代码:
publicStringmakinStrings(){
Strings="Fred";
s=s+"47";//Fred47
s=s.substring(2,5);//ed4
s=s.toUpperCase();//ED4
returns.toString();
}
调用makinString方法,得到的字符串长度是:
A.1
B.2
C.3
D.4
正确答案:
C
3.(单选题)下列选项中的类,能正确实现java.lang.Runnable接口和java.lang.Clonable接口的是()。
A.publicclassSessionimplementsRunnable,Clonable{
publicvoidrun();
publicObjectclone();
}
B.publicclassSessionimplementsRunnable,implementsClonable{
publicvoidrun(){/dosomething*/}
publicObjectclone(){/makeacopy*/}
}
C.publicclassSessionimplementsRunnable,Clonable{
publicvoidrun(){/dosomething*/}
publicObjectclone(){/*makeacopy*/}
}
D.publicclassSessionextendsRunnable,Clonable{
publicvoidrun();
publicObjectclone();
}
正确答案:
C
解析:
A:
普通类中不能包含不完整的方法
B:
若一个类实现多个接口,接口之间用逗号隔开
D:
普通类实现接口,要用implements关键字
4.(单选题)下面的程序可以输出1~100内前10个3的倍数:
for(inti=1,count=0;i<100;i++){//遍历1~100的数,count计数
if(i%3==0){//若为true,则是符合输出条件的数
System.out.println(i);
(空白处)//因为要输出前10个数,此处应实现:
判断是否为前十、是否停止
}
}
下列选项中,空白处可以填入的代码是()。
A.if(count++>=10){//先用后加
break;
}
B.if(++count>=10){//先加后用,能进来说明符合条件,count应先加在用
break;
}
C.if(count++>=10){
continue;
}
D.if(++count>=10){
continue;
}
正确答案:
B
解析:
此处考查++被使用的区别,以及continue、break关键字的用法
单独使用:
++在前在后无差别
被使用:
++在前:
先自增再使用
++在后:
先使用再自增
思考:
若count声明时,count=1,结果怎样?
5.(单选题)下列代码编译和运行的结果是()
publicclassFoo{
publicstaticvoidmain(String[]args){
java.util.Listlist=newjava.util.ArrayList();
list.add(newB());
list.add(newC());
for(Aa:
list){
a.x();
a.y();
}
}
}
interfaceA{
voidx();
}
classBimplementsA{
publicvoidx(){}
publicvoidy(){}
}
classCextendsB{
publicvoidx(){}
}
A.代码运行没有输出
B.运行时抛出异常
C.代码a.y();行,编译错误
D.代码java.util.Listlist=newjava.util.ArrayList();行,编译错误
正确答案:
C
解析:
能点出来什么看类型,重写看方法
此处,a是A类型,故只能点出A中的东西
6.(单选题)仔细分析下列代码,请指出错误的行()。
publicclassSomeThing{
privateStringstr;
publicintaddOne(finalintx){
return++x;//x变量是final修饰的,不能改变
}
}
A.publicclassSomeThing
B.privateStringstr;
C.publicintaddOne(finalintx)
D.return++x;
正确答案:
D
解析:
考查final用法:
final修饰类:
不能被继承
final修饰方法:
不能被重写
final修饰变量:
不能改变
7.(单选题)Java语言中int类型表示整数的最大范围是:
A.-2147483647~2147483647
B.-2147483648~2147483647
C.-32767~32767
D.-32768~32767
正确答案:
B
8.(单选题)下列代码的输出结果是()。
publicstaticvoidmain(String[]args){
int[]one=newint[]{4,6,8};
int[]two=newint[]{1,3,5,7,9};
System.arraycopy(one,1,two,2,2);
System.out.println(Arrays.toString(two));
}
A.[1,3,7,4,6]
B.[1,3,5,7,8]
C.[1,3,5,6,9]
D.[1,3,6,8,9]3
正确答案:
D
解析:
考查这个方法的用法:
System.arraycopy(one,1,two,2,2);
从one数组的下标1处开始复制2个,复制到two数组中从下标2位置开始接收
9.(单选题)关于下列代码说法正确的是:
classClassA{
publicintnumberOfinstances;//420
protectedClassA(intnumberOfinstances){//numberOfinstances=420
this.numberOfinstances=numberOfinstances;
}
}
publicclassExtendedAextendsClassA{
privateExtendedA(intnumberOfinstances){//numberOfinstances=420
super(numberOfinstances);//super(420);---调父类有一个参数的构造
}
publicstaticvoidmain(String[]args){
ExtendedAext=newExtendedA(420);//自动调一个参数的构造
System.out.print(ext.numberOfinstances);
}
}
A.运行后,输出420
B.运行时抛出异常
C.编译错误,所有的构造器必须是public的
D.编译错误,构造器不能是private的
正确答案:
A
10.(单选题)下列Java标识符,错误的是()
A._sys_varl
B.$change
C.User_name
D.1_file
正确答案:
D
解析:
字母、数字、_、$,并且不能以数字开头
11.(单选题)运行下面的语句:
Strings="";
if(s==s+0){//false
System.out.println("HelloWorld");
}
编译,运行的结果是:
()。
A.HelloWorld
B.无输出
C.编译错误
D.抛出运行时异常
正确答案:
B
12.(单选题)下面关于数组的声明语句中,有编译错误的是:
()。
A.int[]arr=newint[]{1,2,3};
B.int[]arr=null;arr={1,2,3,4,5};//这种写法只能直接写,不能拆开写
C.int[][]arr=newint[][]{{1,2,3},{4,5},{6}}
D.int[][]arr=newint[2][];
正确答案:
B
13.(单选题)下列数组声明语句中,错误的是:
()。
A.int[]arr=newint[]{};
B.int[]arr=newint[];//[]中要传入数组的长度
C.int[]arr={};
D.int[][]arr=newint[2][];
正确答案:
B
14.(单选题)下列代码编译和运行的结果是:
publicstaticvoidmain(String[]args){
String[]elements={"for","tea","too"};
Stringfirst=(elements.length>0)?
elements[0]:
null;
System.out.println(first);
}
A.编译出错
B.输出:
tea
C.输出:
for
D.输出:
null
正确答案:
C
解析:
此处考查三目运算
boolean值?
表达式1:
表达式2;
15.(单选题)运行下面程序:
publicstaticvoidmain(String[]args){
Mapmap=newHashMap();
map.put(String.valueOf(System.currentTimeMillis())+"a","1");
map.put(String.valueOf(System.currentTimeMillis())+"b","2");
map.put(String.valueOf(System.currentTimeMillis())+"c","3");
for(Map.Entryentry:
map.entrySet()){
System.out.println(entry.getValue());
}
}
输出的结果是()
A.123
B.312
C.213
D.123顺序无法确定
正确答案:
D
解析:
publicSet>entrySet()
遍历所有的key-value,将当前Map中的每一组kay-value对封装成一个Entry对象,
并存入Set集合后返回
16.(单选题)下列语句创建对象的总个数是:
()。
Strings=”a”+”b”+”c”+”d”+”e”;
A.1
B.2
C.3
D.4
正确答案:
A
解析:
java编译器的小特性:
当一个表达式运算两边都是字面量,那么编译的过程中就会进行运算,
将结果生成在表达式的位置,可以节省运算时的开销。
17.(单选题)下面的代码用于对数组arr实现冒泡排序:
for(inti=0;ibooleanisSwap=false;
空白处
if(!
isSwap)//比了一轮都没有任何交换,说明顺序已经是排好的了
break;
}
下列选项中,空白处可以填入的代码是:
()
A.for(intj=arr.length-1;j>i;j--){//从后往前比
if(arr[j]inttemp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
isSwap=true;
}
}
B.for(intj=arr.length-1;j>0;j--){//从后往前比
//j>0,冒泡是比完的就不再带着它玩了,这个一直带着它玩
if(arr[j]inttemp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
isSwap=true;
}
}
C.for(intj=i+1;j//从后面冒但是每轮都从i+1开始比,所以错
if(arr[j]inttemp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
isSwap=true;
}
}
D.for(intj=i;jif(arr[j]inttemp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
isSwap=true;
}
}
正确答案:
A
解析:
冒泡排序:
从前往后:
拿着大的数给后面的数比----让大数从后面冒出去
从后往前:
拿着小的数给前面的数比----让小数从前面冒出去
18.(单选题)下列代码运行的结果是()。
publicclassBase{
publicstaticfinalStringFOO="foo";
publicstaticvoidmain(String[]args){
Baseb=newBase();
Subs=newSub();
System.out.print(Base.FOO);//调Base中的FOO
System.out.print(Sub.FOO);//调sub中的FOO
System.out.print(b.FOO);//调Base中的FOO
System.out.print(s.FOO);//调Sub中的FOO
System.out.print(((Base)s).FOO);//调Base中的FOO
}
}
classSubextendsBase{
publicstaticfinalStringFOO="bar";
}
A.foofoofoofoofoo
B.foobarfoobarbar
C.foobarfoofoofoo
D.foobarfoobarfoo
正确答案:
D
解析:
能点出来什么看类型,重写看对象。
((Base)s).FOO;等价于Basebb=newSub;bb.FOO;
注意:
子类中继承是具有父类中的常量的,此处子类是声明常量,不是改变了父类中的常量值,是子类中声明了一个自己的常量,只是恰好和继承父类的常量名一致,所以子类调常量肯定是调自己声明的那一个常量,若子类没有声明自己的常量,则会调继承自父类的常量。
19.(单选题)请看下列代码:
publicstaticvoidmain(String[]args){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,2013);
c.set(Calendar.MONTH,Calendar.FEBRUARY);
c.set(Calendar.DATE,28);
<插入代码>
}
在<插入代码>处填入将Calendar表示的日期转换为Date表示的日期:
A.Dated=c.getDate();
B.Dated=c.getCalendar();
C.Dated=c.getNow();
D.Dated=c.getTime();
正确答案:
D
解析:
Calendar与Date、String三者之间的转换
Calendar--->Date
Calendarc=Calendar.getInstance();
Datedate=c.getTime();
Date-->Calendar
Datedate=newDate();//和c存的都是当前系统时间(只是为了测试)
Calendarc=Calendar.getInstance();
c.setTime(date);
Date--->String
Datenow=newDate();
Stringformat="yyyy-MM-ddHH:
mm:
ss";
SimpleDateFormatsdf=newSimpleDateFormat(format);
Stringstr=sdf.format(now);//将Date格式化为时间字符串
String-->Date
Stringstr="2008年8月21日23:
44:
21";
Stringformat="yyyy年M月dd日HH:
mm:
ss";
SimpleDateFormatsdf=newSimpleDateFormat(format);
Datedate=sdf.parse(str);//解析字符串的文本,生成Date
Calendar--->String
Calendar--->Date--->String
String--->Calendar
String--->Date--->Calendar
20.(单选题)下列程序的输出结果是()。
publicstaticvoidmain(String[]args){
Stringstr="ABCDEF";
Stringsub=str.substring(3,5);
System.out.println(sub);
}
A.CD
B.CDE
C.DE
D.DEF
正确答案:
C
解析:
考查substring方法的用法,String下标从0开始,含头不含尾即[3,5)
21.(单选题)下列代码的运行结果是()
publicstaticvoidmain(String[]args){
Stringstr="420";
str+=42;
System.out.print(str);
}
A.42
B.420
C.462
D.42042
正确答案:
D
解析:
+用法:
两边都是数字时:
做算术运算
有一边是字符串:
做连接运算
22.(单选题)请看下列代码,出现错误的行是:
()
01publicinterfaceCookie{
02Cookiecookie=newCart("小面包","盼盼");
03}
04publicclassCartimplementsCookie{
05privateStringname;
06privateStringproduction;
07publicCart(Stringname,Stringproduction){
08this.name=name;
09this.production=production;
10}
11publicvoidsmell(){
12cookie=newCart("蛋黄派","达利园");//cookie可以在子类中使用,但不能更改
13}
14}
A.第2行
B.第4行
C.第11行
D.第12行
正确答案:
D
解析:
接口中:
只能是常量和抽象方法;
常量:
你写或不写都是publicstaticfinal修饰的;
方法:
你写或不写都是publicabstract修饰的;
此处,接口中的声明对象,即声明一个Cookie类型的一个引用类型变量,由于接口的特殊性,
故cookie是publicstaticfinal修饰的,在子类中可以使用,但不能更改。
23.(单选题)请看下列代码:
classClassA{}//动物
classClassBextendsClassA{}//猫
classClassCextendsClassA{}//狗
publicclassTest{
publicstaticvoidmain(String[]args){
ClassAp0=newClassA();//动物=动物
ClassBp1=newClassB();//猫=猫
ClassCp2=newClassC();//狗=狗
ClassAp3=newClassB();//动物=猫
ClassAp4=newClassC();//动物=狗
<插入代码>
}
}
可以在<插入代码>处,填入