Javaの面接試験問題に答えがあります。

4904 ワード

人を面接するのは本当につらい過程です。自分で短い時間で考察した問題を整理しました。
Javaの基礎
1,Stringは最も基本的なデータタイプですか?
いいえ。Javaの中の基本的なデータタイプは8つしかありません。byte、shot、int、long、float、double、char、bollan。基本タイプとエニュメレーションタイプを除いて、残りは全部引用タイプです。
2,float f=3.4正しいですか
正しくないです。3.4はダブル精度数であり、ダブル精度型の浮動小数点型(float)に値を賦与することは下転換(down-casting、狭窄化ともいう)に属し、精度損失をもたらすため、強制型にfloat f=(float)3.4を変換する必要がある。またはfloat f=3.4 Fと書く。
3,コンストラクタは書き換えられますか?
コンストラクタは引き継がれませんので、書き換えることはできませんが、書き換えることはできます。
4,StringとStrigBuider、StrigBufferの違いは?
Javaプラットフォームは、2つのタイプの文字列を提供しています。String Buffer/StringBuiderは、文字列を格納して操作することができます。なお、Stringは読み取り専用文字列であり、Stringが参照する文字列の内容は変更できないことを意味する。なお、StringBuffer/StrigBuider類が示す文字列オブジェクトは、直接に修正することができます。StringBuiderはJava 5に導入されたもので、StringBufferとは全く同じ方法で、単スレッド環境で使用されていることと違います。そのすべての面がsynchronizedによって修飾されていないため、StringBufferよりも効率が高いです。
5,重載(Overload)と書き換え(Override)の違い。重荷重の方法は戻りのタイプによって区別できますか?
方法の重荷重と書き換えはいずれも多状態を実現する方式であり、前者がコンパイルされた時の多状態性と違い、後者が実行された時の多状態性である。リロードは同じクラスで発生し、同じ名前の方法は異なるパラメータリスト(パラメータタイプが異なる、パラメータの個数が異なる、または両方が異なる)がある場合、リロードと見なされます。書き換えはサブクラスと親タイプの間で行われ、書き換えはサブタイプの書き換え方法と親タイプの書き換え方法とが同じ戻りタイプがあり、親タイプの書き換え方法よりもアクセスが良く、親タイプの書き換え方法よりも多くの異常を宣言することができない。リロードはリターンタイプに対して特別な要求がありません。
6,抽象類(abstract class)とインターフェース(interface)は何が違いますか?
抽象類とインターフェースはいずれも実用化できませんが、抽象類とインターフェースタイプの参照を定義することができます。一つのクラスが、ある抽象的なクラスを継承したり、あるインターフェースを実現したりするには、その中の抽象的な方法を全部実現する必要があります。そうでなければ、このクラスは依然として抽象的なクラスとして宣言される必要があります。インターフェースは抽象的なクラスより抽象的です。抽象的なタイプの中でコンストラクタを定義できます。抽象的な方法と具体的な方法があります。インターフェースでコンストラクタを定義できないし、その中の方法は全部抽象的な方法です。抽象的なクラスのメンバーは、prvate、デフォルト、protected、publicであることができますが、インターフェースのメンバーはすべてpublicです。抽象クラスではメンバー変数が定義されますが、インターフェースで定義されているメンバー変数は実際には定数です。抽象的な方法がある類は抽象的な類として宣言されなければならないが、抽象的な類は必ずしも抽象的な方法が必要ではない。
7,静的変数と実例的変数の違いを述べます。
静的変数は、static修饰子によって修饰された変数であり、クラス変数とも呼ばれ、クラスに属しています。クラスのいずれかのオブジェクトではなく、クラスはいくつかのオブジェクトを作成しても、静的変数はメモリにあり、コピーは一つしかありません。インスタンス変数は、あるインスタンスに依存しなければなりません。オブジェクトを作成してから、オブジェクトを介してアクセスすることができます。静的変数は、複数のオブジェクトにメモリを共有させることができます。
8,Stering s=new String(「xyz」);いくつかの文字列オブジェクトを作成しましたか?
二つのオブジェクト、一つは静的領域の「xyz」、一つはnewで積み上げられたオブジェクトです。
9,try{}の中にreturn文がありますが、このtryの後に続くfinally{}のコードは実行されますか?いつ実行されますか?
は、メソッドが使用者に戻る前に実行します。
10,マルチスレッドプログラムを作成するにはいくつかの実現方法がありますか?
Java 5以前にマルチスレッドを実現するには二つの実現方法があります。一つはThread類を継承することです。もう一つはRunnableインターフェースを実現することです。両方の方法は、スレッドの挙動を書き換えることによって定義します。後者の使用を勧めます。Javaの継承はシングル継承であり、一つの種類は親類があります。Thread類を継承すると他のクラスを引き継ぐことができなくなります。明らかにRunnableインターフェースを使うのがより柔軟です。補足:Java 5以降にスレッドを作成するには第三の方法があります。Callableインターフェースを実現し、Java 7後にFutureを実現します。
11、スレッドを起動するのはrun()ですか?それともstart()ですか?
スレッドを起動する方法は、スレッドに代表される仮想プロセッサーを実行可能な状態にするためのstart()を呼び出すことであり、これはJVMによってスケジュールされ実行されることができるという意味であり、スレッドがすぐに実行されるということではない。run()方法はスレッドが起動したらコールバックを行う方法です。
12,Javaでは正規表現の動作をどのようにサポートしますか?
JavaのStringクラスは、matches()、replacceAll()、replacceFirst()、split()を含む正規表現動作をサポートする方法を提供する。また、JavaではPatternクラスで正規表現の対象を表します。APIの豊富な正規表現を提供します。下記の面接問題のコードを参考にしてください。
13、クラスのオブジェクトを得るにはどのような方法がありますか?
  • 方法1:タイプ.クラス、例えば、String.class
  • 方法2:オブジェクト.getクラス()、例えば「ハロー」。get Class()
  • 方法3:Class.forName()、例えば、Class.forName(「java.lang.String」)
  • 14プログラムの出力値はいくらですか?
    public class Client {
    
        public static void main(String[] args) {
            int count = 0;
            for (int i = 0; i < 10; i++) {
                count = count++;
            }
            System.out.println("count=" + count);
        }
    }
    答え:0
    15,adapperとProxyのデザインパターンの違い
    アダプター:一つの種類のインターフェースをお客様の希望の別のインターフェースに変換します。インターフェースの互換性がない問題を解決します。代理:このオブジェクトへのアクセスを制御します。
    16,UMLとは何ですか?
    UMLは、統一的なモデリング言語(Univeried Modeling Language)の略語であり、1997年に発表され、当時既に存在していたオブジェクト指向のモデリング言語、方法、およびプロセスを総合して、モデル化とソフトウェアシステム開発をサポートするグラフィカル言語であり、ソフトウェア開発の段階においてモデル化と可視化のサポートを提供しています。UMLを使用することは、コミュニケーションとコミュニケーションを助け、アプリケーション設計とドキュメントの生成を支援することができ、また、システムの構造と挙動を説明することができる。
    17,UMLではどのような一般的な図がありますか?
    UMLは、様々な図形化された記号を定義して、ソフトウェアシステムの部分または全部の静的な構造と動的構造を記述しています。用例図、状態図(Statit diagram)、class diagram、タイミングチャート(sequence diagram)、連携図(collabotion diagm)、状態図(statechart diagram)、活動図(stram)、アクティビティdivity divideram)、divity ram)を含みます。(component diagram)、配置図(deployment diagram)など、これらの図形化記号の中で最も重要なのは、用例図(必要なものを取り込むためのもの、システムの機能を説明するためのもので、システムの機能モジュールとその関係を迅速に知ることができるもの)、類図の三つです。(クラスとクラスとクラスとの関係を説明し、図を通してシステムを迅速に理解することができる)、タイミングチャート(特定のタスクを実行する際のオブジェクト間の相互作用関係および実行順序を説明することにより、オブジェクトが受信できるメッセージ、すなわちオブジェクトが外部に提供できるサービスを理解することができる)。