- 迅雷JAVA廣州站二筆筆試題目分享 推薦度:
- 相關(guān)推薦
Java 經(jīng)典筆試題2016
Java筆試會(huì )考什么?以下是yjbys小編整理的經(jīng)典試題內容,快來(lái)閱讀看看吧。
Java 經(jīng)典筆試題
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類(lèi)型,因為(short)x將byte類(lèi)型強制轉換為short類(lèi)型,與double類(lèi)型運算,將會(huì )提升為double類(lèi)型.
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屬于方法的重寫(xiě)(重寫(xiě)只存在于繼承關(guān)系中),因為修飾符和參數列表都一樣.B出現編譯錯誤,如下:
Sub.java:6: Sub 中的 getNum() 無(wú)法覆蓋 Super 中的 getNum();正在嘗試使用不
兼容的返回類(lèi)型
找到: void
需要: float
public void getNum(){}
^
1 錯誤
B既不是重寫(xiě)也不是重載,重寫(xiě)需要一樣的返回值類(lèi)型和參數列表,訪(fǎng)問(wèn)修飾符的限制一定要大于被重寫(xiě)方法的訪(fǎng)問(wèn)修飾符(public>protected>default>private);
重載:必須具有不同的參數列表;
可以有不同的返回類(lèi)型,只要參數列表不同就可以了;
可以有不同的訪(fǎng)問(wèn)修飾符;
把其看做是重載,那么在java中是不能以返回值來(lái)區分重載方法的,所以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 nothing
B. print out "Finally"
C. compile error
Answer:B java的finally塊會(huì )在return之前執行,無(wú)論是否拋出異常且一定執行.
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,那么說(shuō)明對return的理解有了混淆,return是強制函數返回,本題就是針對foo(),那么當執行到return的話(huà),output+="4"; 就不再執行拉,這個(gè)函數就算結束拉.
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
7.
class ExceptionTest{
public static void main(String args[]){
try{
methodA();
}
catch(IOException e){
System.out.println("caught IOException");
}
catch(Exception e){
System.out.println("caught Exception");
}
}
}
If methodA() throws a IOException, what is the result? (其實(shí)還應該加上:import java.io.*;)
Answer:caught IOException 異常的匹配問(wèn)題,如果2個(gè)catch語(yǔ)句換個(gè)位置,那就會(huì )報錯,catch只能是越來(lái)越大,意思就是說(shuō):catch的從上到下的順序應該是:孫子異常->孩子異常->父親異常->老祖先異常.這么個(gè)順序.
8.
int i=1,j=10;
do{
if(i++>--j) continue;
}while(i<5); (注意不要丟了這個(gè)分號呦)
After Execution, what are the value for i and j?
A. i=6 j=5
B. i=5 j=5
C. i=6 j=4
D. i=5 j=6
E. i=6 j=6
Answer:D
9.
1)public class X{
2) public Object m(){
3) Object o=new Float(3.14F);
4) Object[] oa=new Object[1];
5) oa[0]=o;
6) o=null;
7) oa[0]=null;
8) System.out.println(oa[0]);
9) }
10) }
which line is the earliest point the object a refered is definitely elibile
to be garbage collectioned?
A.After line 4 B. After line 5 C.After line 6
D.After line 7 E.After line 9(that is,as the method returns)
Answer:D
如果 6) o=null 變成 o=9f ,并且把7)去掉,那么8)將會(huì )輸出什么呢?
10.
1) interface Foo{
2) int k=0;
3) }
4) public class Test implements Foo{
5) public static void main(String args[]){
6) int i;
7) Test test = new Test();
8) i = test.k;
9) i = Test.k;
10) i = Foo.k;
11) }
12) }
what is the result? Answer:compile successed and i=0 接口中的int k=0雖然沒(méi)有訪(fǎng)問(wèn)修飾符,但在接口中默認是static和final的
11. what is reserved words in java?
A. run
B. default
C. implement
D. import
Answer:B,D
12.
public class Test{
public static void main(String[] args){
String foo=args[1];
Sring bar=args[2];
String baz=args[3];
}
}
java Test Red Green Blue
what is the value of baz?
A. baz has value of ""
B. baz has value of null
C. baz has value of Red
D. baz has value of Blue
E. baz has value of Green
F. the code does not compile
G. the program throw an exception
Answer:G
分析:感覺(jué)原應該多一些語(yǔ)句吧,至少應該有紅綠藍的賦值語(yǔ)句之類(lèi)的,才能叫java Test Red Green Blue 才能有后面的選項,所以現在感覺(jué)很奇怪,不過(guò)就這個(gè)樣子吧.這個(gè)問(wèn)題在于:數組參數的理解,編譯程序沒(méi)有問(wèn)題,但是運行這個(gè)程序就會(huì )出現問(wèn)題,因為參數args沒(méi)有給他分配空間那么他的長(cháng)度應該是0,下面卻用拉args[1]........等等的語(yǔ)句,那么定會(huì )出現越界錯誤.
錯誤如下:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Test.main(Test.java:4)
13.
int index=1;
int foo[]=new int[3];
int bar=foo[index];
int baz=bar+index;
what is the result?
A. baz has a value of 0
B. baz has value of 1
C. baz has value of 2
D. an exception is thrown
E. the code will not compile
Answer:B
分析:《thinking in java》中的原話(huà):若類(lèi)的某個(gè)成員是基本數據類(lèi)型,即使沒(méi)有進(jìn)行初始化,java也會(huì )確保它獲得一個(gè)默認值,如下表所示:
基本類(lèi)型 | 默認值 |
boolean | false |
char | '/u0000'(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
千萬(wàn)要小心:當變量作為類(lèi)的成員使用時(shí),java才確保給定其默認值,。。。。。(后面還有很多話(huà),也很重要,大家一定要看完成,要不然還是不清楚)
14. which three are valid declaraction of a float?
A. float foo=-1;
B. float foo=1.0;
C. float foo=42e1;
D. float foo=2.02f;
E. float foo=3.03d;
F. float foo=0x0123;
Answer:A,D,F 分析:B錯誤,因為1.0在java中是double類(lèi)型的,C,E錯誤同樣道理,都是double類(lèi)型的
15.
public class Foo{
public static void main(String args[]){
String s;
System.out.println("s="+s);
}
}
what is the result?
Answer:compile error 分析:需要對s進(jìn)行初始化,和13題是不是矛盾呢:不矛盾,因為它不是基本類(lèi)型,也不是類(lèi)的成員,所以不能套用上述的確保初始化的方法。
16.
1) public class Test{
2) public static void main(String args[]){
3) int i =0xFFFFFFF1;
4) int j=~i;
5)
6) }
7) }
which is decimal value of j at line 5?
A. 0 B.1 C.14 D.-15 E. compile error at line 3 F. compile error at line 4
Answer:C 分析:int是32位的(范圍應該在-231~231-1),按位取反后,后4位是1110,前面的全部是0,所以肯定是14
17.
float f=4.2F;
Float g=new Float(4.2F);
Double d=new Double(4.2);
Which are true?
A. f==g B. g==g C. d==f D. d.equals(f) E d.equals(g) F. g.equals(4.2);
Answer:B,E(網(wǎng)上的答案是B,E;我測試的結果是:true,true,false,false,fasle,fasle,所以答案是:A,B,還請各位大蝦明示)
分析:以下是我從網(wǎng)絡(luò )上找到的,但是感覺(jué)應用到這個(gè)題目上反而不對拉,郁悶中,希望能給大家有所提示,要是你們明白拉,記得給我留言啊!:~
1.基本類(lèi)型、對象引用都在棧中; 而對象本身在堆中;
2.“==“比的是兩個(gè)變量在棧內存中的值,而即使變量引用的是兩個(gè)對象,“==”比的依舊是變量所擁有的“棧內存地址值”;
3.equals()是每個(gè)對象與生俱來(lái)的方法,因為所有類(lèi)的最終基類(lèi)就是Object(除去Object本身);而equals()是Object的方法之一,也就是說(shuō)equals()方法來(lái)自Object類(lèi)。 觀(guān)察一下Object中equals()的source code:
public boolean equals(Object obj) { return (this == obj); }
注意:“return (this == obj)” this與obj都是對象引用,而不是對象本身。所以equals()的缺省實(shí)現就是比較“對象引用”是否一致,所以要比較兩個(gè)對象本身是否一致,須自己編寫(xiě)代碼覆蓋Object類(lèi)里的equals()的方法。來(lái)看一下String類(lèi)的equals方法代碼:
public boolean equals(Object anObject){
if(this == anObject){
return true;
}
if(anObject instanceof String){
String anotherString = (String)anObject;
int n = count;
if(n == anotherString.count){
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while(n-- != 0){
if(v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
18.
public class Equals{
public static void add3(Integer i){
int val = i.intValue();
val += 3;
i = new Integer(val);
}
public static void main(String args[]){
Integer i=new Integer(0);
add3(i);
System.out.println(i.intValue());
}
}
what is the result?
A. compile fail B.print out "0" C.print out "3"
D.compile succeded but exception at line 3
Answer:B 分析:java只有一種參數傳遞方式,那就是值傳遞.(大家可以看我轉載的另一個(gè)同名文章,會(huì )讓大家豁然開(kāi)朗)
19.
public class Test{
public static void main(String[] args){
System.out.println(6^3);
}
}
what is output? Answer:5 分析: ^ is yi huo(計算機器上是Xor) ;異或的邏輯定義:真^真=假 真^假=真 假^真=真 假^假=假
【Java 經(jīng)典筆試題】相關(guān)文章:
迅雷JAVA廣州站二筆筆試題目分享11-21
java筆試題及答案08-20
JAVA面試筆試題11-15
經(jīng)典java筆試題及答案分享02-25
華為Java筆試題一11-21
java英文面試筆試題11-22
java面試筆試題分享11-18
企業(yè)Java面試筆試題范文09-27
群碩筆試題Java和C++、C#11-21