1. 基本的なデータ型とカプセル化されたクラスの違いは何ですか
(その他のインタビュー質問の推奨事項: Java インタビューの質問)
元の型はクラスで、参照型はオブジェクトです。
プリミティブ型のサイズ比較には「==」を使用し、参照型のサイズ比較には「equals」を使用します。
参照型はシリアル化できますが、プリミティブ型はシリアル化できません。
コレクション クラスでは参照型のみを使用でき、プリミティブ型は使用できません。
基本データ型には新しい必要はありませんが、カプセル化クラスには新しい必要があります。
基本的なデータ パラメーターは値によって渡され、カプセル化の種類はアドレスによって渡されます。
2. String、StringBuffer、StringBuilder の違い
String は文字列定数であり、StringBuffer と StringBuilder は文字列変数です。
String によって作成された文字コンテンツは不変であり (String の基になる char 配列は最終的なものです)、StringBuffer と StringBuilder の文字コンテンツは長くすることができます。
StringBuffer はスレッド セーフであり、StringBuilder はスレッド セーフではありませんが、高速です (スレッド セーフのためにパフォーマンスを消費しないため)。
3. なぜ文字列は不変なのでしょうか?
String、StringBuffer、および StringBuilder はすべて最終クラスですが、それらが生成するオブジェクトはすべて不変であり、すべて char 配列によって内部的に実装されます。
しかし、違いは、String クラスで定義された char 配列が最終的なものであり、StringBuffer と StringBuilder は両方とも AbstractStringBuilder クラスから継承し、それらの内部実装はこの親クラスとこの親クラスによって完了されることです。クラスで定義された配列は通常のプライベート変数であり、append を使用して追加できます。
(関連チュートリアルの推奨事項: java 入門チュートリアル)
AbstractStringBuilder は Appendable インターフェイスを実装しているためです。
4. 実行時例外と非実行時例外の違い
実行時例外は、ClassCastException (クラス変換例外)、IndexOutOfBoundsException (配列外) などの実行時エラーです。 )、NullPointerException (null ポインタ)、ArrayStoreException (データ ストレージ例外、配列操作時の型の不一致)、BufferOverflowException の IO 操作例外。
(ビデオ チュートリアルの推奨: java ビデオ チュートリアル)
非実行時例外は、実行前には表示されないエラーです。try および catch を使用して例外をキャッチできます。
5. オブジェクト指向の特徴を簡単に説明し、オブジェクト指向の理解を説明するために例を挙げます。カプセル化、継承、ポリモーフィズム、リアリティ 世界の物事の属性や行動特性を抽象化し、人間などのコンテナ(クラス)に入れる 歩く、聞く、食べる、話すなどの人間の行為を帰属させることができる身長と体重はクラスの属性です。
カプセル化: つまり、設計者がユーザーに公開したくないコード部分は、修飾子 private (最小権限)、public (最大権限)、protected、default (デフォルト) を使用してカプセル化されます。属性が type である前)、これらはクラス オブジェクトの権限を制限する役割を果たす可能性があります。 継承: サブクラスが親クラスを継承するプロセス。継承者は親クラスのすべてのメソッド属性を所有できます。利点は、コードの再利用性が向上することであり、サブクラスは独自の関数またはフィールドを記述するだけでよく、共通のコードを親クラスに抽出できます。 ポリモーフィズム: 親クラスでサブクラス メソッドの属性を統一し、呼び出しを通じてサブクラス メソッドを任意に使用してコード量を最適化する原理は、サブクラスが親クラス メソッドを書き換えることです。以上が長年の開発経験からまとめた Java 面接の質問 - (1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。