Java 经典笔试题

文章转载自:

这些题目对我的笔试帮助很大,有需要的朋友都可以来看看,在笔试中能遇到的题目基本上下面都会出现,虽然形式不同,当考察的基本的知识点还是相同的。

Simulated Test of SCJP for JAVA2 PlatFORM (only for training))

网上可以找到很多,香港虚拟主机,因为我是转载ICXO网站的,但是上面的有很多可能有由于页面原因,每个题目我都做了测试,出现错误的我就稍微做了下修正,希望和大家一起研究和探讨,在分析中肯定有不足和谬误的地方还请大虾们能够给予及时的纠正,特此感谢。

1.

public class ReturnIt{ returnType methodA(byte x, double y){//line 2 return (short)x/y*2; }}

what is valid returnType for methodA in line 2?

答案:返回double类型,因为(short)x将byte类型强制转换为short类型,与double类型运算,将会提升为double类型.

2.1) class Super{2) public float getNum(){return 3.0f;}3) }4)5) public class Sub extends Super{6)7) }which method, placed at line 6, will cause a compiler error?A. public float getNum(){return 4.0f;}B. public void getNum(){}C. public void getNum(double d){}D. public double getNum(float d){return 4.0d;}Answer:B

A属于方法的重写(重写只存在于继承关系中),因为修饰符和参数列表都一样.B出现编译错误,如下:

Sub.java:6: Sub 中的 getNum() 无法覆盖 Super 中的 getNum();正在尝试使用不兼容的返回类型找到: void需要: float public void getNum(){} ^1 错误

B既不是重写也不是重载,重写需要一样的返回值类型和参数列表,访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private);

重载:必须具有不同的参数列表;  可以有不同的返回类型,只要参数列表不同就可以了;  可以有不同的访问修饰符;

把其看做是重载,那么在java中是不能以返回值来区分重载方法的,所以b不对.

3.

public class IfTest{ public static void main(String args[]){ int x=3; int y=1; if(x=y) System.out.println(“Not equal”); else System.out.println(“Equal”); }}what is the result?Answer:compile error 错误在与if(x=y) 中,应该是x==y; =是赋值符号,==是比较操作符

4. public class Foo{ public static void main(String args[]){ try{return;} finally{ System.out.println(“Finally”);} } }what is the result?A. print out nothingB. print out “Finally”C. compile errorAnswer:B java的finally块会在return之前执行,无论是否抛出异常且一定执行.

5.public class Test{ public static String output=””; public static void foo(int i){ try { if(i==1){ throw new Exception(); } output +=”1″; } catch(Exception e){ output+=”2″; return; } finally{ output+=”3″; } output+=”4″; } public static void main(String args[]){ foo(0); foo(1); 24) }}

what is the value of output at line 24? Answer:13423 如果你想出的答案是134234,那么说明对return的理解有了混淆,return是强制函数返回,本题就是针对foo(),那么当执行到return的话,output+=”4″; 就不再执行拉,这个函数就算结束拉.

6. public class IfElse{ public static void main(String args[]){ if(odd(5)) System.out.println(“odd”); else System.out.println(“even”); } public static int odd(int x){return x%2;} } what is output? Answer:Compile Error

一定要记得挺身而出,即便帮不了忙,安慰也是最大的支持.

Java 经典笔试题

相关文章:

你感兴趣的文章:

标签云: