好程序员特训营自测题.docx
《好程序员特训营自测题.docx》由会员分享,可在线阅读,更多相关《好程序员特训营自测题.docx(9页珍藏版)》请在冰豆网上搜索。
好程序员特训营自测题
基础语法
1.Java中main()函数的返回值是什么类型(D)
A、StringB、intC、charD、void
2.以下哪个表达式是不合法的(B)
A、Stringx="Sky";inty=5;x+=y;B、Stringx="Sky";inty=5;if(x==y){}
C、Stringx="Sky";inty=5;x=x+y;
D、Stringx=null;inty=(x!
=null)&&(x.length()>0)?
x.length():
0;
3.执行如下程序代码,后,C的值是(C)
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
A、0B、1C、-1D、死循环
4.下列哪些表达式返回true()
A、"john"=="john"B、"john".equals("john")
C、"john"="john"D、"john".equals(newButton("john"))
5.以下代码段执行后的输出结果为(B)intx=3;inty=10;System.out.println(y%x);
A、0B、1C、2D、3
6.在Java语言中,下列哪个包是编译器自动导入的(A)
A、java.langB、C、javax.swingD、java.util
7.编译,运行下列代码后的结果是:
D
publicclassTest{
publicstaticvoidmain(Stringargs[]){
intage;
age=age+1;
System.out.println("Theageis"+age);
}
}
A、编译,运行后没有输出B、编译,运行后输出:
Theageis1
C、能通过编译,但运行时产生错误D.不能通过编译
8.下面定义的变量能执行那些操作?
A
Strings1=newString("Hello")
Strings2=newString("there");
Strings3=newString();
A、s3=s1+s2;B、s3=s1-s2;C、s3=s1&s2;D、s3=s1&&s2
9.下面有关变量及其作用域的陈述哪些是对的。
(AC)
A、 在方法里面定义的局部变量在方法退出的时候被撤销。
B、局部变量也叫自动变量。
C、在方法外面定义的变量(译注:
即实例变量)在对象被构造时创建。
D、在方法中定义的方法的参变量只要该对象被需要就一直存在。
10.执行代码System.out.println(4|3);之后,能打印出什么结果(D)
A、6B、0C、1D、7
11.当你试图准备编译,运行下面代码时会发生:
D
publicclassTuxextendsThread{
staticStringsName="vandeleur";
publicstaticvoidmain(Stringargv[]){
Tuxt=newTux();
t.piggy(sName);
System.out.println(sName);
}
publicvoidpiggy(StringsName){
sName=sName+"wiggy";
start();
}
publicvoidrun(){
for(inti=0;i<4;i++){
sName=sName+""+i;
}
}
}
A.编译时错误
B.编译成功,并打印出"vandeleurwiggy"
C.编译成功,并打印出"vandeleurwiggy0123"
D.编译成功,并打印出"vandelur"
12.有一个A类,下面关于A类对象的定义正确的是()
A.Aa();B.Aa=newA();C.Aa=A();D.Aa(){};
面相对象基础:
1.假定一个类的构造方法为“A(intaa,intbb){a=aa;b=aa*bb;}”,则执行“Ax=newA(4,5);”语句后,x.a和x.b的值分别是:
()
A、4和5B、5和4C、4和20D、20和5
2.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)
A、staticvoidmethod()B、publicvoidmethod()
B、finalvoidmethod()D、abstractvoidmethod()
3.程序的执行结果是()
publicclassTest{
publicstaticvoidmain(String[]args){
System.out.println(“”+'a'+1);
}
}
A、98B、a1C、971D、197
4.以下哪项是接口的正确定义(D)
A、interfaceB{voidprint(){};}
B、abstractclassB{voidprint();}
C、abstractinterfaceBextendsA1,A2//A1、A2为已定义的接口{abstractvoidprint(){};}
D、interfaceB{voidprint();}
5.关于类和对象的叙述正确的是(A)
A、Java的类分为两大部分:
系统定义的类和用户自定义的类
B、类的静态属性和全局变量的概念完全一样,只是表达形式不同
C、类的成员至少有一个属性和一个方法
D、类是对象的实例化
1.不能用来修饰interface的有(ACD)
A、privateB、publicC、protectedD、static
面相对象高级:
1.当你试图准备编译,运行下面代码时会发生:
C
classBase{}
classSubextendsBase{}
classSub2extendsBase{}
publicclassCEx{
publicstaticvoidmain(Stringargv[]){
Baseb=newBase();
Subs=(Sub)b;
}
}
A.编译和运行很正常
B.编译时错误
C.运行时错误
D.假定有一个包含引起异常(不是一个RuntimeException)的代码的方法,用什么方式告诉方法的调用者要捕获该异常:
B
E.A.throwException
F.B.throwsException
G.C.newException
H.D.不用特别指定
异常:
1.假定有一个包含引起异常(不是一个RuntimeException)的代码的方法,用什么方式告诉方法的调用者要捕获该异常:
B
A.throwException
B.throwsException
C.newException
D.不用特别指定
2.面关于异常的描述,错误的是()
A.异常分为Error和Exception异常,程序员只能解决Exception异常
B.处理异常时,一个try语句可以伴随一个或多个catch块,解决可能产生的多个异常对象
C.使用多重catch语句时,异常子类与异常父类的写法无顺序要求
D.无论在try代码块中是否发生了异常事件,finally块中的语句都会被执行
3.下面关于throws和throw的说法,错误的是()
A.throws用来声明一个方法可能会抛出的所有异常,跟在方法签名的后面
B.throw关键字用在方法代码中主动抛出一个异常对象
C.如果一个方法声明的是非运行时异常,则在调用这个方法之处必须处理这个异常
D.如果方法代码中自行抛出的异常是非运行时异常,则这个方法要用throw关键字声明这个异常
4.所有的异常类皆继承哪一个类(C)
A)java.io.ExceptionB)java.lang.Throwable
C)java.lang.ExceptionD)java.lang.Error
5.在异常处理中,如释放资源、关闭文件等善后操作由(C)来完成
A)try子句B)catch子句C)finally子句D)throw子句
常用类库:
1.以下语句中,没有创建出字符串对象的是(A)
A、Stringstr;B、Stringstr="hello";
C、Stringstr=newString();D、newString("hello");
2.将System.out.println(Math.floor(-2.1))执行后;打印的结果为:
(D)
A、-2B、2.0C、-3D、-3.0
3.在Java中,如果要在字符串类型对象s="java"中,得到字符'v'出现的位置,可使用下面的那个方法?
()
A、s.matches('v');B、s.charAt('v');C、s.indexOf('v');D、s.substring('v');
4.以下关于集合的描述,错误的是()
A.集合中的泛型,可以声明为基本数据类型。
B.集合中的泛型,一旦指定后,该集合中就只能存储相应泛型类型的数据对象。
C.所谓集合中的泛型就是指在集合创建时指明该集合中所能够存储的数据类型。
D.一个集合如果不指明具体的泛型,则默认能够存储Object类型的数据对象。
5.以下关于集合的描述,正确的是()
A.Collections是集合框架中的一个接口。
B.TreeSet集合中存储的元素,必须实现Comparable接口中的compareTo(To)方法。
C.ArrayList集合在遍历的时候,除了可以使用for循环,还可以使用迭代器迭代遍历。
D.HashSet集合中遍历打印元素的顺序,就是存储时的顺序。
6.以下关于字符串的描述,错误的是()
A.用String类表示的字符串,内容不可改变。
用StringBuffer类表示的字符串,可以改变内容。
B.每个字符串都有其自己的长度,用length属性来表示。
C.String类的split()方法,用于字符串的切割,返回的结果是一个String数组。
D.字符串的索引是从0开始,当索引值大于该字符串长度时会产生下标越界异常