華為面試題詳解(1~5)
1.
public class Test {
public static void changeStr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
此題結果為:1234;
比較簡單分析下內存就行了.
2.
public class ForTest
{
static boolean foo(char c)
{
System.out.println(c);
return true;
}
public static void main(String[] args)
{
int i = 0;
for(foo('A');foo('B')&&(i<2);foo('C'))
{
i ++;
foo('D');
}
}

}
此題結果為:ABDCBDCB
這道題考查的for循環的執行順序.
for(int i = 0; i < 10; i ++)
{}
首先先執行int i = 0;注意這個只是初始化一次,
就是在第一次的時候.接著執行i < 10;
然后執行方法體{}里面的內容,最后才執行i++;
第二次及以后就直接執行i <10;然后方法體;最后
i ++;如此順序直到結束為止.
3.
1. class A {
2. protected int method1(int a, int b) { return 0; }
3. }
Which two are valid in a class that extends class A? (Choose two)
A. public int method1(int a, int b) { return 0; }
B. private int method1(int a, int b) { return 0; }
C. private int method1(int a, long b) { return 0; }
D. public short method1(int a, int b) { return 0; }
E. static protected int method1(int a, int b) { return 0; }
此題考查的是繼承重寫問題.
當一個子類重寫父類的方法時,重寫的方法的訪問權限
必須大于等于父類的訪問權限.
在此題中父類中的方法訪問權限為protected,子類只能是
protected或public.這時A是符合題意的.
由于選項C的形參和父類的不一樣,沒有重寫的效果,所以
在子類出現也是沒問題的.
所以此題選:AC
4.
1. public class Outer{
2. public void someOuterMethod() {
3. // Line 3
4. }
5. public class Inner{}
6. public static void main( String[]argv ) {
7. Outer o = new Outer();
8. // Line 8
9. }
10. }
Which instantiates an instance of Inner?
A. new Inner(); // At line 3
B. new Inner(); // At line 8
C. new o.Inner(); // At line 8
D. new Outer.Inner(); // At line 8//new Outer().new Inner()
此題選A.
內部類的實例化可以在普通方法里也可以在
static方法里實例化.
如下:
package com.test.a;

public class Outer
{
Inner i = new Outer.Inner();
public void method()
{
new Inner();
}
public class Inner{
}
public static void main(String[] args)
{
Outer o = new Outer();
Inner i = o.new Inner();
}
static void a()
{
Outer o = new Outer();
Inner i = o.new Inner();
}

}
5.
Which method is used by a servlet to place its session ID in a URL that is written to the servlet’s response output stream?

(譯:那個方法是servlet用于將其session ID入在一個URL中,該URL寫入servlet的響應輸出流)

A. The encodeURL method of the HttpServletRequest interface.

B. The encodeURL method of the HttpServletResponse interface.

C. The rewriteURL method of the HttpServletRequest interface.

D. The rewriteURL method of the HttpServletResponse interface.
此題選B.
請看J2EE API關于此方法的說明:
Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged. The implementation of this method includes the logic to determine whether the session ID needs to be encoded in the URL. Because the rules for making this determination can differ from those used to decide whether to encode a normal link, this method is separated from the encodeURL method.
All URLs sent to the HttpServletResponse.sendRedirect method should be run through this method. Otherwise, URL rewriting cannot be used with browsers which do not support cookies.











比較簡單分析下內存就行了.
2.




















這道題考查的for循環的執行順序.
for(int i = 0; i < 10; i ++)
{}
首先先執行int i = 0;注意這個只是初始化一次,
就是在第一次的時候.接著執行i < 10;
然后執行方法體{}里面的內容,最后才執行i++;
第二次及以后就直接執行i <10;然后方法體;最后
i ++;如此順序直到結束為止.
3.










此題考查的是繼承重寫問題.
當一個子類重寫父類的方法時,重寫的方法的訪問權限
必須大于等于父類的訪問權限.
在此題中父類中的方法訪問權限為protected,子類只能是
protected或public.這時A是符合題意的.
由于選項C的形參和父類的不一樣,沒有重寫的效果,所以
在子類出現也是沒問題的.
所以此題選:AC
4.















此題選A.
內部類的實例化可以在普通方法里也可以在
static方法里實例化.
如下:







































請看J2EE API關于此方法的說明:



posted on 2007-12-13 09:37 々上善若水々 閱讀(4846) 評論(6) 編輯 收藏 所屬分類: Java筆試與面試