Java で頻繁に聞かれる基本的な面接の質問—(2)
Java 面接の質問と回答)
1. String s = new String("xyz"); 作成される StringObject の数は何ですか? String クラスを継承することは可能ですか?
両方または一方が可能です。「xyz」はオブジェクトに対応します。このオブジェクトは文字列定数バッファーに配置されます。定数「xyz」は常に表示されます。何度出現しても、バッファ内にあるものです。 NewString が書き込まれるたびに、新しいオブジェクトが作成されます。このオブジェクトは、定数「xyz」オブジェクトの内容を使用して新しい String オブジェクトを作成します。 「xyz」が以前に使用されている場合、「xyz」はここでは作成されず、バッファから直接取得されます。このとき、StringObject が作成されますが、「xyz」の場合以前に使用されていない場合、この時点でオブジェクトが作成されてバッファに配置されます。この場合、2 つのオブジェクトが作成されます。 String クラスが継承されるかどうかについては、答えは「いいえ」です。String はデフォルトで最終変更され、継承できないからです。2. String と StringBuffer の違い
JAVA プラットフォームには、String と StringBuffer という 2 つのクラスがあり、文字列、つまり複数の文字を格納および操作できます。 . キャラクターデータ。 String クラスは、数値的に不変の文字列を提供します。この StringBuffer クラスによって提供される文字列は変更できます。文字データが変更されることがわかっている場合は、StringBuffer を使用できます。通常、文字データを動的に構築するには StringBuffers を使用します。3. 次のステートメントによって合計で作成されるオブジェクトの数: String s="a" "b" "c" "d";
String s1 = "a"; String s2 = s1 + "b"; String s3 = "a" + "b"; System.out.println(s2 == "ab"); System.out.println(s3 == "ab");
String s ="a" + "b" +"c" + "d"; System.out.println(s== "abcd");
4. try {} に return ステートメントがあるため、この try の直後にあるfinally{} のコードが実行されますか? いつ実行されますか? return の前または後ですか? ?
finally{} 内のステートメントは確実に実行されることがわかっているため、これは通常、return 前に口頭で表示され、このメソッドは return 後に出てくる可能性があります。それがどこに行ったのかは誰にも分かりません。次のプログラム コードの実行結果を参照してください:public classTest { public static void main(String[]args) { System.out.println(newTest().test());; } static int test() { intx = 1; try { returnx; } finally { ++x; } } } ---------执行结果 --------- 1
java コース )
5.final、finally、finalize の違い。
6. 実行時例外と一般例外の類似点と相違点は何ですか?
例外は、プログラムの実行中に発生する可能性のある異常な状態を表します。ランタイム例外は、仮想マシンの通常の操作で発生する可能性のある例外を表し、一般的な操作エラーです。 Java コンパイラでは、発生する可能性のある非ランタイム例外をスローするメソッドを宣言する必要がありますが、キャッチされないランタイム例外をスローするメソッドを宣言する必要はありません。7. エラーと例外の違いは何ですか?
エラーは、回復が不可能ではないが困難な場合の深刻な問題を示します。たとえば、メモリのオーバーフローです。プログラムがそのような状況に対処することを期待することは不可能です。例外は設計または実装の問題を表します。つまり、プログラムが正常に実行されている場合には決して起こらない状況を表します。8. Java の例外処理メカニズムの簡単な原理と応用について簡単に説明します。
例外とは、Java プログラムの実行中 (コンパイルされていない) に発生する異常な状況またはエラーを指します。これは現実の出来事と非常によく似ています。現実の出来事には、時間、場所、登場人物、プロットなどが含まれます。イベントの情報。情報はオブジェクトで表すことができます。Java はオブジェクト指向のアプローチを使用して例外を処理します。プログラム内で発生する各例外をオブジェクトにカプセル化し、それを表します。オブジェクトには例外情報が含まれます。
Java は例外を分類します。さまざまなタイプの例外は、さまざまな Java クラスによって表されます。すべての例外のルート クラスは java.lang.Throwable であり、Throwable から 2 つのサブクラスが派生します:
Error および例外、エラーは、アプリケーション自体が克服および回復できない重大な問題を表します。プログラムはクラッシュするだけです。たとえば、メモリ オーバーフローやスレッド デッドロックなどのシステムの問題です。
例外は、プログラムがまだ克服および回復できる問題を示します。これは、システム例外と通常の例外に分けられます。
システム例外は、ソフトウェア自体の欠陥によって引き起こされる問題です。つまり、開発者の配慮が不十分なために発生したソフトウェアの問題は、ソフトウェア ユーザーが克服したり回復したりすることはできません。ただし、そのような問題が発生しても、ソフトウェア システムは実行を継続できるか、ソフトウェアがハングします。たとえば、配列スクリプトの範囲外 (ArrayIndexOutOfBoundsException) )、空のポインタ例外 (NullPointerException)、クラス変換例外 (ClassCastException);
一般的な例外は、動作環境の変更や例外によって引き起こされる問題であり、ネットワークの切断、不十分な問題など、ユーザーが克服できる問題です。ハードディスクの空き容量。このような例外が発生した後、プログラムが停止することはありません。
Java は、システム例外と通常の例外に対して異なる解決策を提供します。コンパイラは、通常の例外を try..catch によって処理するか、throws ステートメントを使用して上位層の呼び出しメソッドにスローし続けるように強制します。チェック済み例外とも呼ばれます。例外、およびシステム例外は処理されるかどうかが異なるため、コンパイラは try..catch 処理を強制したり宣言をスローしたりしないため、システム例外は未チェック例外とも呼ばれます。
(推奨チュートリアル: java 入門チュートリアル )
9. Java のヒープとスタックの違いは何ですか?
JVM のヒープとスタックは異なるメモリ領域に属し、異なる目的に使用されます。スタックはメソッド フレームやローカル変数を格納するためによく使用されますが、オブジェクトは常にヒープ上に割り当てられます。スタックは通常、ヒープよりも小さく、複数のスレッド間で共有されませんが、ヒープは JVM 全体のすべてのスレッドによって共有されます。
スタック: 関数で定義されたいくつかの基本的なタイプの変数とオブジェクト参照変数は、関数のスタック メモリに割り当てられます。変数がコード ブロックで定義されると、Java はその変数をスタックに割り当てます。変数はメモリ空間を割り当てます。変数のスコープを超えると、Java は変数に割り当てられたメモリ空間を自動的に解放し、そのメモリ空間はすぐに他の目的に使用できるようになります。
ヒープ: ヒープ メモリは、new によって作成されたオブジェクトと配列を格納するために使用され、ヒープに割り当てられたメモリは、Java 仮想マシンの自動ガベージ コレクタによって管理されます。配列またはオブジェクトがヒープ内に生成された後、スタック内の変数の値がヒープ メモリ内の配列またはオブジェクトの最初のアドレスと等しくなるように、スタック内に特殊な変数を定義することもできます。配列またはオブジェクトの参照変数を取得した後、スタック内の参照変数を使用して、プログラム内でヒープ内の配列またはオブジェクトにアクセスできます。参照変数は、配列またはオブジェクトに名前を付けるのと同じです。物体。
10. int をバイト型変数に強制することはできますか?値がバイト型の範囲より大きい場合はどうなりますか?
強制変換もできますが、Java の int は 32 ビット、byte は 8 ビットなので、強制変換すると int 型の上位 24 ビットが破棄されてしまいます。タイプの範囲は -128 ~ 127 です。
以上がJava で頻繁に聞かれる基本的な面接の質問—(2)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。
