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

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

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

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

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

throws: チェックされた例外を処理せずにメソッドでスローする場(chǎng)合、メソッド シグネチャで 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)でのみ使用できます。例外によって実行プロセスが一時(shí)停止されるため、閉じられないリソースがいくつか開かれる可能性があるため、finally ブロックを使用できます。 Finally ブロックは、例外が発生したかどうかに関係なく、常に実行されます。

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

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

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

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

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

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

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

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

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

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

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

ほとんどの場(chǎng)合、リソースを閉じるためにfinally ブロックを使用しますが、場(chǎng)合によってはブロックを閉じるのを忘れて、リソースが使い果たされたときに実行時(shí)例外が発生します。これらの例外はデバッグが難しいため、このタイプのリソースを使用しているすべての場(chǎng)所を調(diào)べて、確実に閉じていることを確認(rèn)する必要がある場(chǎng)合があります。 Java 7 の改良點(diǎn)の 1 つは try-with-resources です。try ステートメントでリソースを作成し、それを try-catch ブロックで使用できるようになります。 try-catch ブロックから実行されると、ランタイム環(huán)境はこれらのリソースを自動(dòng)的に閉じます。この改善が加えられた 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 ブロックを使用してコードで処理する必要があります。それ以外の場(chǎng)合、メソッドは throws キーワードを使用して、メソッドからスローされる可能性のあるチェック例外について呼び出し元に知らせる必要があります。チェックされていない例外は、プログラム內(nèi)で処理したり、メソッドの throws 句で言及したりする必要はありません。

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

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

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

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

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

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

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

自定義異常的一個(gè)簡(jiǎ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的子類,當(dāng)JVM用完堆內(nèi)存時(shí),它會(huì)拋出它。我們可以通過提供更多內(nèi)存來通過java選項(xiàng)運(yùn)行java應(yīng)用程序來修復(fù)此錯(cuò)誤。

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

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

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

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

當(dāng)您的java類是從另一個(gè)JDK版本編譯并且您嘗試從另一個(gè)Java版本運(yùn)行它時(shí),會(huì)出現(xiàn)此異常。

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

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

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

main:當(dāng)您嘗試運(yùn)行沒有main方法的類時(shí)會(huì)出現(xiàn)此異常。

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

每當(dāng)從main方法拋出任何異常時(shí),它都會(huì)打印異常是控制臺(tái)。第一部分解釋了從main方法拋出異常,第二部分打印異常類名,然后在冒號(hào)后打印異常消息。

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

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

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

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

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

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

12、當(dāng)main方法拋出異常時(shí)會(huì)發(fā)生什么?

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

13、我們可以有一個(gè)空的catch塊嗎?

我們可以有一個(gè)空的catch塊,但它是最差編程的例子。我們永遠(yuǎn)不應(yīng)該有空的catch塊,因?yàn)槿绻惓1辉搲K捕獲,我們將沒有關(guān)于異常的信息,并且它將成為調(diào)試它的噩夢(mèng)。應(yīng)該至少有一個(gè)日志記錄語(yǔ)句來記錄控制臺(tái)或日志文件中的異常詳細(xì)信息。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、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 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

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

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

Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時(shí)刻を取得します。 3。of()メソッドを使用して特定の日付と時(shí)刻を作成します。 4.プラス/マイナスメソッドを使用して、時(shí)間を不正に増加させて短縮します。 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シナリオ。

ネットワークポートとファイアウォールの理解 ネットワークポートとファイアウォールの理解 Aug 01, 2025 am 06:40 AM

ネットワークポートアンドファイアワルクトグテルトエナブルコマニケーションwhiledensuringsecurity.1.networksarevirtualendpointsnumbered0–655 35、withwell-knownportslike80(http)、443(https)、22(ssh)、および25(smtp)識(shí)別pecificservices.2.portsoperateovertcp(信頼できる、c

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

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

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

適切なHTMLinputタイプを選択すると、データの精度を向上させ、ユーザーエクスペリエンスを向上させ、使いやすさを向上させることができます。 1.テキスト、電子メール、電話、番號(hào)、日付など、データ型に従って対応する入力タイプを選択します。 2。HTML5を使用して、より直感的な相互作用方法を提供できるU(xiǎn)RL、色、範(fàn)囲、検索などの新しいタイプを追加します。 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は

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

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

See all articles