Java面接試験問題のまとめ(100題)Ⅱ

6352 ワード

26 Math.round(11.5)とMath.round(-11.5)はいくらですか?
roundメソッドは、パラメータに最も近い長整数Case 1を返します。小数点以下1位=5正数:Math.round(11.5)=12負数:Math.round(-11.5)=-11 Case 2:小数点以下1位<5正数:Math.round(11.49)=11負数:Math.round(-11.49)=-12
27 String s=new String(xyz)はいくつかのString Objectを作成しました。
まずnewで「xyz」を一つ作って、またnewでsを作って、xyzをsに指します。
28スレッドが起動するのはrun()ですか?それともstart()ですか?
29一般的なWebサーバ
BEA WebLogic Server;IBM WebSphere Apple Server;JBossTomcat;
30よくあるruntime exception
31インターフェースはインターフェースを引き継ぐことができますか?抽象クラスはインターフェースを実現できますか?抽象クラスはエンティティクラスを継承できますか?
インターフェースは継承できます。抽象類はインターフェースを実現できます。抽象類も実体類を継承することができます。エンティティ類は明確な構造関数が必要です。
32 List、Set、MapはCollectionインターフェースから継承されますか?
ListとSetは、Mapはcollectionインターフェースから継承されておらず、Mapインターフェースのサブクラスを実現しながら、Collectionインターフェースを実現することができる。
33データ接続プールの動作メカニズムは何ですか?
サーバーの起動時には一定数の池接続が確立され、それ以上の池接続が維持されます。クライアントプログラムに接続が必要な場合、プールドライバは未使用のプール接続を返して、忙しさと表記します。現在空きがない場合、プールドライバは一定数の接続を新規作成します。新規接続の数は設定パラメータで決まります。使用したプール接続の呼び出しが完了したら、この接続のタグをプールドライバがアイドル状態にします。他の呼び出しはこの接続を使用できます。
34 abstract classのmethodは同時にstaticでもいいですか?同時にnativeでもいいですか?synchronizedでもいいですか?
できません
35セットの中の要素は重複できますか?どうやって繰り返しを区別しますか?を使いますか?それともequalsを使いますかどんな違いがありますか?
Setの中の要素は重複できないので、iterator()の方法で重複を区別します。equalsは二つのset要素が等しいかどうかを判断します。==メモリで同じ位置にあるかどうかを表します。
36コンストラクタはoverrideに接続できますか?
コンストラクタは引き継げませんので、書き換えることはできませんが、書き換えられます。
37 switch()の中の表現はbyte/long/Stringタイプですか?
括弧内の表式は整数表式です。このためにswitchやcase文に送るパラメータはint/shart/char/byteであるべきです。long/StringはSwitchには機能しません。
38 try{}の中にreturn文があります。このtryの後に続くfinally{}のコードが実行されますか?いつ実行されますか?
実行します。
39は最も効率的な方法で2掛けると8は何になりますか?
2<<3,左に3桁移動します
40二つのオブジェクトの値は同じです。彼らのhashcodeは同じですか?
41オブジェクトがパラメータとして一つの方法に渡されると、この方法はこのオブジェクトの属性を変更し、変化後の結果を返すことができます。ここでは、値の伝達なのかそれともアプリケーションの伝達なのか?
値伝達、javaは値伝達パラメータのみである。オブジェクトのインスタンスがパラメータとして方法に渡されるとき、パラメータの値はオブジェクトに対する参照である。オブジェクトの内容は呼び出し方法で変更できますが、オブジェクトの参照は変更されません。
42スレッドがオブジェクトのsynchronizedメソッドに入ると、他のスレッドはこのオブジェクトの他の方法に入ることができますか?
いいえ、一つのオブジェクトのsynchronizedメソッドは一つのスレッドでしかアクセスできません。
43 Singletonを一つ書き出します。
Singletonモードの主な役割はJavaアプリケーションにおいて、クラスクラスクラスクラスの一つはインスタンスだけが存在することを保証することである。一般的にSingletonモードにはいくつかの形態があります。1つのクラスを定義し、その構造関数はprvateであり、staticのprvateのこのクラスの変数があります。クラス初期化の際には実際に例化され、一つのget Instance方法を通じてその参照を取得し、その後にその中の方法を呼び出します。
public class Singleton{
    private Singleton(){
        //             
        private static Singleton instance = new Singleton();
        public static Singleton getInstance(){
            return instance;
        }
    }
}
2.
//              ,         ,              ,     
public class Singleton{
    private static Singleton instance = null;
    public static synchronized Singleton getInstance(){
        if (instance==null){
            instance=new Singleton();
            return instance;
        }
    }
}
3.その他の方法:クラスを定義し、彼の構造方法はprvateであり、全ての方法はstaticである。
44 JavaのインターフェースはC++虚の種類と同じか、あるいは違うところにあります。
Javaは複数の継承をサポートしていないので、いくつかのクラスまたは対象にそれぞれの方法を使用することができます。既存の単一の継承機構は要求を満たすことができません。インターフェースは引継ぎに比べて実装コードがないので、より高い柔軟性を持っています。つのクラスがインターフェースを実現した後、このクラスはインターフェースの中のすべての方法と変数を実現して、そしてインターフェースの中の変数はデフォルトの状態ですべてpublic staticで、すべての方法はデフォルトの状況でpublicです。
45 Javaにおける異常処理機構の簡単な原理と応用
プログラムがセマンティックルールに違反すると、仮想マシンはエラーを異常として表します。意味違反のルールは2つの場合があります。1.Javaライブラリに内蔵されている意味検査です。たとえば、配列下のラベルが境界を越えると、IndexoutOfBounds Exceptionを引き起こします。nullのオブジェクトにアクセスするとNull PointerExceptionが発生します。もう一つの状況はJavaがプログラマにこのような意味検査を拡張させることを許可し、プログラマは自分の異常を作成し、いつthrowキーワードを使うかを自由に選択して異常を引き起こすことができる。すべての異常はjava.lang.Throwable類です。
46ゴミ回収器
Java言語の著しい特徴は、ごみ回収メカニズムを導入したことで、c++プログラマが最も頭が痛いメモリ管理問題が解決されます。ごみ回収の仕組みがあるので、Javaの対象はもう機能領域の変化がなく、対象の引用だけが機能領域になります。ごみの回収期間は通常、単独の低レベルスレッドと西寧であり、予知できない状況では、メモリの中ですでに死亡していたり、長期間使用していない対象をクリアしたり、回収したりします。プログラマーはリアルタイムでごみ回収器を呼び出して、ある対象またはある対象にゴミを回収したりしません。回収メカニズムには以下のようなものがあります。*分別ゴミ回収マークゴミ回収増分ゴミ回収*
47あなたが知っているスレッドの同期方法を教えてください。
wait():スレッドを待機状態にし、保有するオブジェクトのロックsleepを解放する():実行しているスレッドを睡眠状態にする静的な方法で、catch InterrupteException方法notify()を呼び出します。待機状態のスレッドを起動します。注意するのはこの方法を呼び出す時です。どの待ち状態のスレッドが起動されるかは正確には分かりませんが、どのスレッドが起動されるかはJVMで決まります。Allnotify():待機状態にあるスレッドを全て呼び覚まし、スレッドの対象にロックをかけるのではなく、競合させることに注意する。
48あなたが知っている集合類は何がありますか?
ListとMap、Listの具体的な実装は、任意の種類のオブジェクトの要素リストを構築、記憶、操作に適した可変サイズのリストです。Listは検索に適しています。Mapはより一般的な要素記憶方法を提供する。Mapクラスはキーペアを記憶するために使用され、各keyはvalueにマッピングされる。Mapの用途は非常に広いです。
49はJVMがclassファイルをロードする原理の構造を説明します。
Javaのすべてのクラスは、JVMにロードされなければ実行できません。このロード作業はJVMのclass Loader類のローダーによって完成されました。classLoaderの仕事は、実質的にはクラスファイルをハードディスクからメモリに読み込むことです。Javaのクラスは大きく三つに分けられます。システムクラス、拡張クラス、プログラマがカスタマイズしたクラスです。クラスのロード方式は2種類あります。1、暗黙的にロードします。プログラムは運転中にnewなどの方式でオブジェクトを生成した時に、class Loaderを呼び出して対応するクラスをJVMにロードします。2、明示的な積載:class.forname()などの方法によって、明示的なロードに必要なクラス
クラスローディングのダイナミック性の体現:一つのアプリケーションはいつも複数の種類から構成されています。javaプログラムが起動する時、すべてのクラスを一括でローディングしてから実行するのではなく、いつも先に保証プログラムを実行する基礎類をJVMに一回でローディングします。他の種類はJVMが使う時に再ローディングします。このような利点はメモリのオーバーヘッドを節約します。javaは最初に組み込みシステムのために設計されたので、使う時に読み込むのもjavaダイナミックな表現です。
JavaクラスのキャリアJavaの中のクラスのキャリアも実質的に疲れています。機能はクラスをjvmにロードすることです。注意すべきはjvmのクラスのキャリアは一つではなく、三つのBootstrap Loaderがシステムクラスをロードすることです。Ext Class Loaderは拡張クラスAPPClass Loaderを交えてアプリケーションクラスのロードを担当しています。
クラスのキャリア間はどうやって仕事を調整しますか?Javaは委託モデル機構を採用しています。このメカニズムは簡単に言えば、クラスローダーにロード類の需要がある時に、まずそのパスを使ってロードを手伝ってください。もしparentが見つからないなら、自分で自分の検索経路に従ってクラスを検索します。
BootstraphLoader
50 char型変数に漢字を格納できますか?
大丈夫です。中国語はUnicodeでエンコードできます。しかも2バイトです。一つのcharは16バイトです。だからcharは漢字を一つ置くのは大丈夫です。