国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ Java &#&面接の質(zhì)問 Java 面接の質(zhì)問 - 例外

Java 面接の質(zhì)問 - 例外

Dec 10, 2020 pm 04:38 PM
java 異常な 面接の質(zhì)問

Java 面接の質(zhì)問 - 例外

Java 面接の質(zhì)問の例外

面接の質(zhì)問は次のとおりです:

1. Java の例外とは何ですか?

例外は、プログラムの実行中に発生し、通常のフローを中斷する可能性のあるエラー イベントです。例外は、ユーザーが入力したデータが正しくない、ハードウェア障害、ネットワーク接続障害など、さまざまな種類の狀況によって発生する可能性があります。

(學(xué)習(xí)ビデオ共有: java 教育ビデオ )

Java ステートメントの実行時にエラーが発生するたびに、例外オブジェクトが作成され、JRE は次の処理を試みます。例外を処理する例外処理プログラムを検索します。適切な例外ハンドラーが見つかった場合、例外オブジェクトはハンドラー コードに渡されて例外を処理します。これを例外のキャッチと呼びます。ハンドラーが見つからない場合、アプリケーションはランタイム環(huán)境に例外をスローし、JRE はプログラムを終了します。

Java 例外処理フレームワークは、実行時エラーの処理にのみ使用されます。コンパイル時エラーは、例外処理フレームワークでは処理されません。

2. Java の例外処理キーワードとは何ですか?

Java 例外処理では 4 つのキーワードが使用されます。

throw: 例外オブジェクトを明示的に作成し、それをスローしてプログラムの通常の処理を停止することがあります。 throw キーワードは、例外を処理するためにランタイムに例外をスローするために使用されます。

throws: チェックされた例外を処理せずにメソッドでスローする場合、メソッド シグネチャで throws キーワードを使用して、メソッドによってスローされる可能性のある例外を呼び出し側(cè)プログラムに知らせる必要があります。呼び出し側(cè)メソッドは、これらの例外を処理したり、 throws キーワードを使用して呼び出し側(cè)メソッドに例外を伝播したりできます。 throws 節(jié)および main() メソッドで複數(shù)の例外を提供できます。

try-catch: 例外処理のためにコード內(nèi)で try-catch ブロックを使用します。 try はブロックの始まりであり、catch は try ブロックの終わりで例外を処理します。 try を使用すると複數(shù)の catch ブロックを使用でき、try-catch ブロックをネストすることもできます。 catch ブロックには、Exception 型のパラメータが必要です。

finally:finally ブロックはオプションであり、try-catch ブロック內(nèi)でのみ使用できます。例外によって実行プロセスが一時停止されるため、閉じられないリソースがいくつか開かれる可能性があるため、finally ブロックを使用できます。 Finally ブロックは、例外が発生したかどうかに関係なく、常に実行されます。

3. Java 例外階層について説明しますか?

Java 例外は階層構(gòu)造になっており、さまざまな種類の例外を分類するために継承が使用されます。 Throwable は Java 例外階層の親クラスであり、Error と Exception という 2 つの子オブジェクトがあります。例外はさらに、チェック例外と実行時例外に分類されます。

エラーとは、ハードウェア障害、JVM クラッシュ、メモリ不足エラーなど、アプリケーションの範囲を超え、予測および回復(fù)できない特殊な狀況です。

チェック例外は、FileNotFoundException など、プログラム內(nèi)で予期して回復(fù)を試みることができる特殊な狀況です。この例外をキャッチしてユーザーに有用なメッセージを提供し、デバッグ用に適切にログに記録する必要があります。 Exception は、すべての Checked Exceptions の親クラスです。

実行時例外は、配列から要素を取得しようとするなど、不適切なプログラミングによって発生します。要素を取得する前に配列の長さを確認する必要があります。そうしないと、実行時に ArrayIndexOutOfBoundException がスローされる可能性があります。 RuntimeException は、すべてのランタイム例外の親クラスです。

4. Java 例外クラスの重要なメソッドは何ですか?

Exception とそのすべてのサブクラスは特定のメソッドを提供せず、すべてのメソッドは基本クラス Throwable で定義されます。

String getMessage() - 此方法返回消息String of Throwable,并且可以在通過構(gòu)造函數(shù)創(chuàng)建異常時提供消息。
String getLocalizedMessage() - 提供此方法,以便子類可以覆蓋它以向調(diào)用程序提供特定于語言環(huán)境的消息。此方法getMessage()的可拋出類實現(xiàn)只是使用方法來返回異常消息。
synchronized Throwable getCause() - 此方法返回異常的原因或null id,原因未知。
String toString() - 此方法以String格式返回有關(guān)Throwable的信息,返回的String包含Throwable類和本地化消息的名稱。
void printStackTrace() - 此方法將堆棧跟蹤信息打印到標準錯誤流,此方法已重載,我們可以將PrintStream或PrintWriter作為參數(shù)傳遞,以將堆棧跟蹤信息寫入文件或流。

5. Java 7 ARM の機能とマルチキャッチ ブロックについて説明してください。

try ブロックで多くの例外をキャッチすると、catch ブロックのコードが非常に見苦しく、主にエラーをログに記録するための冗長なコードで構(gòu)成されていることがわかります。Java 7 の機能の 1 つはマルチであることを思い出してください。 -キャッチブロック。 1 つの catch ブロックで複數(shù)の例外をキャッチできます。この機能を備えた catch ブロックは次のようになります。

catch(IOException | SQLException | Exception ex){
logger.error(ex);
throw new MyException(ex.getMessage());
}

ほとんどの場合、リソースを閉じるためにfinally ブロックを使用しますが、場合によってはブロックを閉じるのを忘れて、リソースが使い果たされたときに実行時例外が発生します。これらの例外はデバッグが難しいため、このタイプのリソースを使用しているすべての場所を調(diào)べて、確実に閉じていることを確認する必要がある場合があります。 Java 7 の改良點の 1 つは try-with-resources です。try ステートメントでリソースを作成し、それを try-catch ブロックで使用できるようになります。 try-catch ブロックから実行されると、ランタイム環(huán)境はこれらのリソースを自動的に閉じます。この改善が加えられた try-catch ブロックのサンプルは次のとおりです:

try (MyResource mr = new MyResource()) {
System.out.println("MyResource created in try-with-resources");
} catch (Exception e) {
e.printStackTrace();
}

(その他の関連するインタビューの質(zhì)問が共有されています: java インタビューの質(zhì)問と回答 )

6. Java でチェックされるもの未チェック例外との違いは何ですか?

チェック例外は、try-catch ブロックを使用してコードで処理する必要があります。それ以外の場合、メソッドは throws キーワードを使用して、メソッドからスローされる可能性のあるチェック例外について呼び出し元に知らせる必要があります。チェックされていない例外は、プログラム內(nèi)で処理したり、メソッドの throws 句で言及したりする必要はありません。

Exception は、すべてのチェック例外 RuntimeException のスーパークラスですが、すべての未チェック例外のスーパークラスです。 RuntimeException は Exception のサブクラスであることに注意してください。

已檢查的異常是需要在代碼中處理的錯誤方案,否則您將收到編譯時錯誤。例如,如果您使用FileReader讀取文件,它會拋出FileNotFoundException,我們必須在try-catch塊中捕獲它或?qū)⑵湓俅螔伣o調(diào)用方法。

未經(jīng)檢查的異常主要是由編程不良引起的,例如在對象引用上調(diào)用方法時的NullPointerException,而不確保它不為null。例如,我可以編寫一個方法來從字符串中刪除所有元音。確保不傳遞空字符串是調(diào)用者的責任。我可能會改變方法來處理這些場景,但理想情況下,調(diào)用者應(yīng)該處理這個問題。

7、Java中throw和throws關(guān)鍵字有什么區(qū)別?

throws關(guān)鍵字與方法簽名一起用于聲明方法可能拋出的異常,而throw關(guān)鍵字用于破壞程序流并將異常對象移交給運行時來處理它。

8、如何在Java中編寫自定義異常?

我們可以擴展Exception類或其任何子類來創(chuàng)建我們的自定義異常類。自定義異常類可以擁有自己的變量和方法,我們可以使用它們將錯誤代碼或其他與異常相關(guān)的信息傳遞給異常處理程序。

自定義異常的一個簡單示例如下所示。

package com.journaldev.exceptions;
import java.io.IOException;
public class MyException extends IOException {
private static final long serialVersionUID = 4664456874499611218L;
private String errorCode="Unknown_Exception";
public MyException(String message, String errorCode){
super(message);
this.errorCode=errorCode;
}
public String getErrorCode(){
return this.errorCode;
}
}

9、Java中的OutOfMemoryError是什么?

Java中的OutOfMemoryError是java.lang.VirtualMachineError的子類,當JVM用完堆內(nèi)存時,它會拋出它。我們可以通過提供更多內(nèi)存來通過java選項運行java應(yīng)用程序來修復(fù)此錯誤。

$>java?MyProgram?-Xms1024m?-Xmx1024m?-XX:PermSize=64M?-XX:MaxPermSize=256m

10、“主線程中的異?!庇心男┎煌那闆r?

一些常見的主線程異常情況是:

主線程java.lang.UnsupportedClassVersionError中的異常:

當您的java類是從另一個JDK版本編譯并且您嘗試從另一個Java版本運行它時,會出現(xiàn)此異常。

主線程java.lang.NoClassDefFoundError中的異常:

此異常有兩種變體。第一個是您提供類全名和.class擴展名的地方。第二種情況是找不到Class。

主線程java.lang.NoSuchMethodError中的異常:

main:當您嘗試運行沒有main方法的類時會出現(xiàn)此異常。

線程“main”中的異常java.lang.ArithmeticException:

每當從main方法拋出任何異常時,它都會打印異常是控制臺。第一部分解釋了從main方法拋出異常,第二部分打印異常類名,然后在冒號后打印異常消息。

11、Java中的final,finally和finalize有什么區(qū)別?

final和finally是java中的關(guān)鍵字,而finalize是一種方法。

final關(guān)鍵字可以與類變量一起使用,以便它們不能被重新分配,類可以避免按類擴展,并且使用方法來避免子類覆蓋。

finally關(guān)鍵字與try-catch塊一起使用,以提供始終執(zhí)行的語句即使出現(xiàn)一些異常,通常最終也會用來關(guān)閉資源。

finalize()方法由垃圾收集器在銷毀對象之前執(zhí)行,這是確保關(guān)閉所有全局資源的好方法。

在三者之中,最后只涉及到j(luò)ava異常處理。

12、當main方法拋出異常時會發(fā)生什么?

當main()方法拋出異常時,Java Runtime終止程序并在系統(tǒng)控制臺中打印異常消息和堆棧跟蹤。

13、我們可以有一個空的catch塊嗎?

我們可以有一個空的catch塊,但它是最差編程的例子。我們永遠不應(yīng)該有空的catch塊,因為如果異常被該塊捕獲,我們將沒有關(guān)于異常的信息,并且它將成為調(diào)試它的噩夢。應(yīng)該至少有一個日志記錄語句來記錄控制臺或日志文件中的異常詳細信息。

14、提供一些Java異常處理最佳實踐?

與Java異常處理相關(guān)的一些最佳實踐是:

使用特定異常以便于調(diào)試。

在程序中盡早拋出異常(Fail-Fast)。

在程序后期捕獲異常,讓調(diào)用者處理異常。

使用Java 7 ARM功能確保資源已關(guān)閉或使用finally塊正確關(guān)閉它們。

始終記錄異常消息以進行調(diào)試。

使用multi-catch塊清潔關(guān)閉。

使用自定義異常從應(yīng)用程序API中拋出單一類型的異常。

遵循命名約定,始終以Exception結(jié)束。

記錄在javadoc中使用@throws的方法拋出的異常。

異常是昂貴的,所以只有在有意義的時候拋出它。否則,您可以捕獲它們并提供空或空響應(yīng)。

相關(guān)推薦:java入門教程

以上がJava 面接の質(zhì)問 - 例外の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JDBCを使用してJavaのトランザクションを処理する方法は? JDBCを使用してJavaのトランザクションを処理する方法は? Aug 02, 2025 pm 12:29 PM

JDBCトランザクションを正しく処理するには、最初に自動コミットモードをオフにし、次に複數(shù)の操作を?qū)g行し、結(jié)果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開始します。 2。挿入や更新など、複數(shù)のSQL操作を?qū)g行します。 3。すべての操作が成功した場合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場合はconn.rollback()を呼び出します。同時に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設(shè)定して部分的なロールバックを達成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお勧めします。

Javaでカレンダーを操作する方法は? Javaでカレンダーを操作する方法は? Aug 02, 2025 am 02:38 AM

Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時刻を取得します。 3。of()メソッドを使用して特定の日付と時刻を作成します。 4.プラス/マイナスメソッドを使用して、時間を不正に増加させて短縮します。 5. ZonedDateTimeとZoneIDを使用して、タイムゾーンを処理します。 6。DateTimeFormatterを介したフォーマットおよび解析の文字列。 7.インスタントを使用して、必要に応じて古い日付型と互換性があります?,F(xiàn)代のJavaでの日付処理は、java.timeapiを使用することを優(yōu)先する必要があります。

Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-formanceTartuptimeMemoryusage、quarkusandmicronautleadduetocopile-timeprocessingingandgraalvsupport、withquarkusoftentylightbetterine serverlessシナリオ。

Garbage CollectionはJavaでどのように機能しますか? Garbage CollectionはJavaでどのように機能しますか? Aug 02, 2025 pm 01:55 PM

JavaのGarbage Collection(GC)は、メモリを自動的に管理するメカニズムであり、到達不可能なオブジェクトを取り戻すことでメモリ漏れのリスクを軽減します。 1.GCルートオブジェクトからのオブジェクトのアクセシビリティ(スタック変數(shù)、アクティブスレッド、靜的フィールドなど)、および到達不可能なオブジェクトはゴミとしてマークされています。 2。マーククリアリングアルゴリズムに基づいて、すべての到達可能なオブジェクトをマークし、マークのないオブジェクトをクリアします。 3.世代の収集戦略を採用する:新世代(Eden、S0、S1)は頻繁にMinorGCを?qū)g行します。高齢者のパフォーマンスは少なくなりますが、MajorGCを?qū)g行するのに時間がかかります。 Metaspaceはクラスメタデータを保存します。 4。JVMはさまざまなGCデバイスを提供します。SerialGCは小さなアプリケーションに適しています。 ParallelGCはスループットを改善します。 CMSが減少します

HTTPミドルウェアロギングの例を例に進めます HTTPミドルウェアロギングの例を例に進めます Aug 03, 2025 am 11:35 AM

GOのHTTPログミドルウェアは、リクエストメソッド、パス、クライアントIP、および時間がかかることを記録できます。 1. http.handlerfuncを使用してプロセッサをラップします。2。next.servehttpを呼び出す前後の開始時間と終了時間を記録します。完全なサンプルコードの実行が検証されており、中小のプロジェクトの開始に適しています。拡張機能の提案には、ステータスコードのキャプチャ、JSONログのサポート、リクエストIDトラッキングが含まれます。

ユーザーデータにHTML「入力」タイプを使用します ユーザーデータにHTML「入力」タイプを使用します Aug 03, 2025 am 11:07 AM

適切なHTMLinputタイプを選択すると、データの精度を向上させ、ユーザーエクスペリエンスを向上させ、使いやすさを向上させることができます。 1.テキスト、電子メール、電話、番號、日付など、データ型に従って対応する入力タイプを選択します。 2。HTML5を使用して、より直感的な相互作用方法を提供できるURL、色、範囲、検索などの新しいタイプを追加します。 3.プレースホルダーと必要な屬性を使用して、フォームフィリングの効率と精度を改善しますが、プレースホルダーがラベルを置き換えることはできないことに注意してください。

Javaビルドツールの比較:Maven vs. Gradle Javaビルドツールの比較:Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

gradleisthebetterchoiceformostnewprojectoitssuperorfficability、performance、andmoderntoolingsupport.1.gradle’sgroovy/kotlindslismoreconciseandexpressiveethanmaven’sverboseml.2.gradleorformsmavenbenbumebutedwitedwitedwitedspedexは

説明された延期聲明の例で進みます 説明された延期聲明の例で進みます Aug 02, 2025 am 06:26 AM

Deferは、クリーニングリソースなど、関數(shù)が戻る前に指定された操作を?qū)g行するために使用されます。パラメーターは、延期時にすぐに評価され、関數(shù)は最後のファーストアウト(LIFO)の順に実行されます。 1.複數(shù)の債務(wù)は、宣言の逆の順序で実行されます。 2.ファイルの閉鎖などの安全なクリーニングに一般的に使用されます。 3。指定された返品値を変更できます。 4.回復(fù)に適したパニックが発生した場合でも実行されます。 5。リソースの漏れを防ぐために、ループで延期の亂用を避けます。正しい使用により、コードのセキュリティと読みやすさが向上します。

See all articles