>本文主要针对自己做的题中所遇到的问题,进行一次总结,温故知新,掌握更好!
- 下面的程序 编译运行后,在屏幕上显示的结果是()
public class test {
public static void main(String args[]) {
int x,y;
x=5>>2;
y=x>>2;
System.out.println(y);
}
}
A、0 B、1 C、2 D、3
A
解析:>>运算符表示右移,简单来算结果就是>>前面的数除以2的后面的数的次幂得到结果,当前面的数为正数时,>>与>>>运算结果是一致的。
- 给出下面代码的运行结果( )
class Example{
public static void main(String args[]){
StringBuffer sb1=new StringBuffer(“String”);
StringBuffer sb2=new StringBuffer(“String”);
if(! sb1.equals(sb2)){
System.out.println(“False”);
}else{
System.out.println(“True”);
}
}
A、True
B、False
C、编译错误
D、无结果输出
B
解析:注意String继承了equals方法比较时是值比较,而对于StringBuffer并没有equals方法,所以此处比较的是地址。
- 给定某Java程序的main方法如下,该程序编译运行后的结果是( )。
public static void main(String[] args) {
String str=null;
str.concat(“abc”);
str.concat(“def”);
System.out.println(str);
}
A) 输出:null B) 输出:abcdef C) 编译错误 D) 运行时出现异常
D
解析:此处str=null,null是不能打点调用任何方法的,所以运行时会出错
4.System.out.println(“5”+2);的输出结果应该是( )
A、52 B、7 C、2 D、5
A
解析:5为String字符串,+为连接符,所以结果为52
5.下列说法不正确的是( )
A)Double是引用数据类型
B)char是基本数据类型
C)String是基本数据类型
D)double是基本数据类型
C
解析:String既不是基本数据类型也不是引用数据类型
6.下列说法正确的是( )
A) 类里面至少有一个方法
B) 类的里面的private修饰的方法,不可以被调用
C) 类中的变量和方法的默认访问权限修饰符是public
D) 一个源文件里面,只能有一个public 修饰的类
D
解析:A.实体类中可以没有方法
B.被private修饰的方法在同类中可以被调用
C.默认访问修饰符为default
7.下列选项是重载method方法的是( )(2分)
public void method(int x,int y,int z);
A) public String method(int x,int y,int z){}
B) protected int method(){}
C) public Object Method(int x,int y){}
D) public void method(int x,int y,int z){}
B
解析:重载与参数列表,顺序,类型有关,与方法返回值,修饰符无关
8.test方法的返回值是( )(2分)
public static int test(){
try{
int result=10/0;
}catch (ArithmeticException e) {
return 0;
}finally{
return 1; }
A) 编译错误 B) 运行错误 C) 0 D) 1
D
解析:finally是一定会被执行的,第一次return 0,第二次return 1,会覆盖,所以最终结果为1
9.定义如下Java代码:
abstract class Shape{
abstract void dram();}
class Square extends Shape{}
如果编译上面的代码会发生( )。
A、一切成功编译
B、Shape可以编译Square不能编译
C、Shape不能编译Square可以编译
D、Shape,Square都不能编译
B
解析:继承抽象类的类要重写抽象类中的抽象方法
10.下列描述正确的是( )
A、ArrayList中不允许其存储的数据元素重复。
B、ArrayList可以向索引指定的位置添加数据元素。
C、HashSet中允许其存储的数据元素重复。
D、HashSet可以向索引指定的位置添加数据元素。
B
解析:ArrayList中可以有重复的元素,HashSet中不能有重复的元素
- 执行下列代码后,String[ ] s = new String[10],哪个结论是正确的( )
A、s[10]为“” B、s[9]为null C、s[0]为未定义 D、s.length为10
BD
解析:new String类型未给值时结果默认为null
- 思考下列代码:String s = null;下列选项中哪一个会抛出空指针异常?(选出正确的两项)
A、if((s!=null)&(s.length()>0))
B、if((s!=null)&&(s.length()>0))
C、if((s==null)|(s.length()0))
D、if((snull)||(s.length()==0)) String s = null;
AC
解析:&运算符必须都对才算对,但如果第一个为false还会看第二个结果这时null打点调方法就会出错。
|运算符如果第一个为真,还是会继续执行下面的。
13.请写出下面程序的运行结果:
public class Foo {
{
System.out.println(“b”);
}
static {
System.out.println(“a”);
}
Foo() {
System.out.println(“c”);
}
public static String getOut() {
try {
return “1”;
} catch (Exception e) {
return “2”;
} finally {
return “3”;
}
}
public static void main(String[] args) {
System.out.println(getOut());
}
}
a
3
解析:
static代码块中的内容在类加载时就会执行,所以会输出。finally里面的内容一定会执行,覆盖前面的返回值所以最后为3。