Javaインタビューの質問の全集(4)

Javaインタビューの質問の全集(4)

BaiyuITハハ

31. String s = new String( "xyz");作成された文字列オブジェクトはいくつですか?

回答:2つのオブジェクト。1つは静的領域の「xyz」で、もう1つはヒープ上にnewで作成されたオブジェクトです。

32.インターフェースを拡張できますか?抽象クラスはインターフェースを実装できますか?抽象クラスは具体的なクラスを継承できますか?

回答:インターフェースはインターフェースを継承し、複数の継承をサポートできます。抽象クラスはインターフェイスを実装でき、抽象クラスは具象クラスまたは抽象クラスを継承できます。

33。「。java」ソースファイルに複数のクラス(内部クラスではない)を含めることはできますか?制限は何ですか?

回答:はい。ただし、ソースファイルには最大で1つのパブリッククラス(パブリッククラス)を含めることができ、ファイル名はパブリッククラスのクラス名と完全に同じである必要があります。

34.匿名の内部クラスは他のクラスから継承できますか?インターフェイスを実装できますか?

回答:他のクラスを継承したり、他のインターフェイスを実装したりできます。このメソッドは、SwingプログラミングおよびAndroid開発で一般的に使用され、イベントの監視とコールバックを実装します。

35.内部クラスは、それを含むクラス(外部クラス)のメンバーを参照できますか?制限はありますか?

回答:内部クラスオブジェクトは、プライベートメンバーを含む、それを作成した外部クラスオブジェクトのメンバーにアクセスできます。

36. Javaでのfinalキーワードの用途は何ですか?

回答:(1)変更されたクラス:クラスを継承できないことを示します。(2)変更されたメソッド:メソッドを書き換えることができないことを示します。(3)変更された変数:変数は一度しか割り当てられず、値を変更できない(一定)ことを示します。

37.次のプログラムの結果を指摘します。


class A {    static {
        System.out.print("1");
    }
    public A() {
        System.out.print("2");
    }
}
class B extends A{
    static {
        System.out.print("a");
    }
    public B() {
        System.out.print("b");
    }
}
public class Hello {
    public static void main(String[] args) {
        A ab = new B();
        ab = new B();
    }
}

回答:実装結果:1a2b2b。オブジェクトを作成するとき、コンストラクターの呼び出しシーケンスは次のとおりです。最初に静的メンバーを初期化し、次に親クラスコンストラクターを呼び出し、次に非静的メンバーを初期化し、最後に独自のコンストラクターを呼び出します。

ヒント:この質問に正解できない場合は、質問21のJavaクラスの読み込みメカニズムが完全に理解されていないことを意味します。急いでもう一度確認してください。

38.データタイプ間の変換:

-文字列を基本的なデータタイプに変換するにはどうすればよいですか?
-基本的なデータタイプを文字列に変換する方法は?
回答:

  • 基本データタイプに対応するパッケージングクラスのメソッドparseXXX(String)またはvalueOf(String)を呼び出して、対応する基本タイプを返します。
  • 1つの方法は、基本データタイプを空の文字列( "")(+)に接続して対応する文字列を取得することです。もう1つの方法は、StringクラスのvalueOf()メソッドを呼び出して対応する文字列を返すことです。

    39.文字列を逆にして置き換える方法は?

    回答:多くのメソッドがあります。独自の実装を作成するか、StringまたはStringBuffer / StringBuilderでメソッドを使用できます。非常に一般的なインタビューの質問は、再帰を使用して文字列の反転を実現することです。コードは次のとおりです。


public static String reverse(String originStr) {
        if(originStr == null || originStr.length() <= 1) 
            return originStr;
        return reverse(originStr.substring(1)) + originStr.charAt(0);
    }

40. GB2312でエンコードされた文字列をISO-8859-1でエンコードされた文字列に変換するにはどうすればよいですか?

回答:コードは次のとおりです。Strings1
= "Hello";
String s2 = new String(s1.getBytes( "GB2312")、 "ISO-8859-1");

おすすめ

転載: blog.51cto.com/15061944/2593692
おすすめ