-
JavaでのComparableとComparatorの違い
コンパレータとコンパレータはどちらも、コレクションの要素を並べ替えるために使用できるインターフェイスです。コンパレータインターフェイスはjava.utilパッケージに属し、compareratorインターフェイスはjava.langパッケージに属します。コンパレータインターフェイスは、提供された2つのオブジェクトを使用してコレクションを並べ替えますが、比較可能なインターフェイスは、「これ」が提供された1つのオブジェクトを比較します。 Sr。いいえ。 キー 比較可能 コンパレータ 1 メソッド 同等のインターフェースにはメソッドcompareTo(Object a)があり
-
Javaでのシリアル化と外部化の違い
シリアル化と外部化はどちらも、オブジェクトをストリームバイトに変換し、バイトストリームをデータベースまたはメモリに格納するプロセスです。 java.io.Serializableインターフェイスを実装するクラスはシリアル化できます。一方、アプリケーションの要件に基づいてカスタムシリアル化に使用される外部化。外部化はjava.io.Serializableを拡張します。 Sr。いいえ。 キー シリアル化 外部化 1 インターフェース シリアル化はマーカーインターフェイスです 外部化には、readExternalメソッドとwriteExternalメソッドの2つのメソ
-
Javaでの例外とエラーの違い
例外とエラーはどちらもThrowableクラスのサブクラスです。このエラーは、主にシステムリソースの不足が原因で発生する問題を示しており、アプリケーションはこれらのタイプの問題をキャッチするべきではありません。エラーの例としては、システムクラッシュエラーやメモリ不足エラーなどがあります。エラーは主に実行時に発生し、チェックされていないタイプに属します。 例外は、実行時およびコンパイル時に発生する可能性のある問題です。これは主に、開発者によって作成されたコードで発生します。例外は、チェックされた例外とチェックされていない例外などの2つのカテゴリに分類されます。 Sr。いいえ。 キー
-
Javaでのスレッドとランナブルの違い
新しい実行スレッドを作成するには、2つの方法があります。 1つは、クラスをThreadクラスのサブクラスとして宣言することです。このサブクラスは、Threadクラスのrunメソッドをオーバーライドする必要があります。その後、サブクラスのインスタンスを割り当てて開始できます。 スレッドを作成するもう1つの方法は、Runnableインターフェースを実装するクラスを宣言することです。次に、そのクラスはrunメソッドを実装します。次に、クラスのインスタンスを割り当て、スレッドの作成時に引数として渡して、開始することができます。 すべてのスレッドには、識別のための名前があります。複数のスレッドが同じ
-
Javaでの待機とスリープの違い
待つ ()-スレッドはこのモニターの所有権を解放し、notify()メソッドまたはnotifyAll()メソッドのいずれかを呼び出して、このオブジェクトのモニターでウェイクアップするのを待機しているスレッドに別のスレッドが通知するまで待機します。次に、スレッドはモニターの所有権を再取得できるようになるまで待機し、実行を再開します。 睡眠 ()-このメソッドにより、現在実行中のスレッドが指定されたミリ秒数の間スリープ(一時的に実行を停止)します。スレッドはモニターの所有権を失うことはありません。現在のスレッドを指定された時間「実行不可」状態にします。 Sr。いいえ。 キー 待つ スリープ
-
ReentrantLockとJavaで同期されたものの違い
複数のスレッドによって共有リソースをロックするには、2つの方法があります。 1つはリエントラントロック(またはReadWriteLock)で、もう1つは同期メソッドを使用する方法です。 ReentrantLockクラスは、Java5のJava同時実行パッケージで提供されています。 これはロックインターフェースの実装であり、Javaのドキュメントによると、ロックインターフェースの実装は、同期メソッドを使用して取得できるよりも広範な操作を提供します。 Sr。いいえ。 キー ReentrantLock 同期 1 ロックを取得 リエントラントロッククラスは、スレッドによ
-
Javaのスタックメモリとヒープメモリの違い
JVMは、メモリスペースを2つの部分に分割しました。1つはスタックで、もう1つはヒープスペースです。スタックスペースは、主にメソッド実行とローカル変数の順序を格納するために使用されます。 スタックは常にブロックをLIFOの順序で格納しますが、ヒープメモリはメモリブロックの割り当てと割り当て解除に動的割り当てを使用しました。 ヒープに割り当てられたメモリは、次のいずれかのイベントが発生するまで存続します: プログラムが終了しました メモリフリー 対照的に、スタックに割り当てられたメモリは、関数が戻るまで存続します。違いは次のとおりです。 Sr。いいえ。 キー スタック ヒープメ
-
Javaでの継承と構成の違い
コンポジションは、クラスがクラスのフィールドとして別のクラスのインスタンスを持つことができる設計手法です。継承は、クラスを拡張することにより、1つのオブジェクトが親オブジェクトのプロパティと動作を取得できるメカニズムです。 構成と継承はどちらも、クラスを関連付けることでコードの再利用性を提供します。コンポジションを使用すると、継承の機能も取得できます。以下は違いです。 Sr。いいえ。 キー 継承 構成 1 基本 継承は「is-a」関係です 構成は「has-a」です。関係 2 コードの再利用 継承では、クラスlassは1つのインターフェースしか拡
-
Javaの文字列バッファと文字列ビルダーの違い
文字列バッファとStringBuilderはどちらも可変クラスであり、文字列の反転、文字列の連結などの文字列オブジェクトの操作を実行できます。文字列の新しいオブジェクトを作成せずに文字列を変更できます。文字列バッファはスレッドセーフですが、文字列ビルダーはスレッドセーフではありません。したがって、文字列バッファよりも高速です。また、string concat +演算子は、内部でStringBufferまたはStringBuilderクラスを使用します。違いは次のとおりです。 Sr。いいえ。 キー 文字列バッファ 文字列ビルダー 1 基本 StringBufferは、J
-
Javaでのリストとセットの違い
両方のインターフェイスの一覧表示と設定は、コレクションフレームワークに属しています。どちらのインターフェースもコレクションインターフェースを拡張します。これらは両方とも、オブジェクトのコレクションを単一のユニットとして格納するために使用されます。 jdk1.2より前は、オブジェクトを単一のユニットとしてグループ化するために、配列、ベクトル、およびハッシュテーブルを使用していました。 Sr。いいえ。 キー リスト 設定 1 位置アクセス リストは、コレクション内の要素への位置アクセスを提供します。 Setは、コレクション内の要素への位置アクセスを提供しません
-
Javaでの揮発性と一時的な違い
volatileキーワードは、2つのスレッドが同じ変数を同時に読み書きするマルチスレッド環境で使用されます。 volatileキーワードは、CPUキャッシュではなく、変更をメインメモリに直接フラッシュします。 一方、transientキーワードは、シリアル化中に使用されます。一時としてマークされたフィールドは、シリアル化および逆シリアル化の一部にすることはできません。変数の値を保存したくない場合は、その変数で一時的なキーワードを使用します。 Sr。いいえ。 キー 揮発性 一時的 1 基本 Volatileキーワードは、変更をメインメモリに直接フラッシュするために
-
Javaでのフェイルファストとフェイルセーフの違い
Sr。いいえ。 キー 失敗-高速 フェイルセーフ 1 例外 スレッド中のコレクションの追加、削除、更新など、コレクション内の変更はすべてコレクションを繰り返し、高速スロー同時変更例外をスローします。 フェイルセーフコレクションは例外をスローしません。 2。 コレクションの種類 ArrayListとハッシュマップコレクションは、フェイルファストイテレータの例です。 CopyOnWriteと同時変更は、フェイルセーフイテレータの例です。 3。 パフォーマンスとメモリ 代わりに実際のコレクションで動作します。したがって、このイテレータは余
-
JavaでGsonを使用してJSON文字列に追加のプロパティを追加/挿入するにはどうすればよいですか?
com.google.gson.JSonElement クラスはJsonの要素を表します 。 toJsonTree()を使用できます Gsonの方法 オブジェクトの表現をJsonElementsのツリーとしてシリアル化するクラス。 getAsJsonObject()を使用して、JSON文字列に追加のプロパティを追加/挿入できます JSonElementのメソッド 。このメソッドは、要素を JsonObjectとして取得するために戻ります。 。 構文 public JsonObject getAsJsonObject() 例 import com.google.gson.*; publ
-
正規表現^(caret)Javaのメタ文字
部分表現/メタ文字“ ^” 行の先頭に一致します。これを正規表現で使用すると、入力文字列の後続の文と一致します。 例1 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { public static void main( String args[] ) { String regex = "^Hi how are you"; Strin
-
Javaの正規表現$(ドル)メタ文字
部分表現/メタ文字「$ 」は行の終わりに一致します。 例1 import java.util.regex.Matcher; import java.util.regex.Pattern; public class EndWith { public static void main( String args[] ) { String regex = "Tutorialspoint$"; String input = "Hi how are you welco
-
正規表現 。 (ドット)Javaのメタ文字
部分式/メタ文字「。」改行以外の任意の1文字に一致します。 例1 import java.util.regex.Matcher; import java.util.regex.Pattern; public class MatchesAll { public static void main( String args[] ) { String regex = "."; String input = "Hi how are you welcome to Tu
-
Javaの正規表現\Aメタ文字を説明する
部分表現/メタ文字「\A 」は文字列全体の先頭に一致します。 例1 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { public static void main( String args[] ) { String regex = "\\AHi"; String input = "Hi how are you welco
-
JavaでJacksonで@ConstructorPropertiesアノテーションを使用するのはいつですか?
@ConstructorProperties アノテーションはjava.beanからのものです ■パッケージ。注釈付きコンストラクターを介してJSONをJavaオブジェクトに逆シリアル化するために使用されます。 。このアノテーションは、Jackson2.7バージョンからサポートされています 以降。このアノテーションが非常に単純に機能する方法では、コンストラクター内の各パラメーターにアノテーションを付けるのではなく、各コンストラクターパラメーターのプロパティ名を配列に提供できます。 構文 @Documented @Target(value=CONSTRUCTOR) @Retention(val
-
Javaの正規表現re*メタ文字
部分式/メタ文字「re*」は、前の式の0回以上の出現に一致します。 例1 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { public static void main( String args[] ) { String regex = "aabc*"; String input = "aabcabcaabcabbcaab
-
Javaの正規表現[^...]構文
部分表現/メタ文字「[^...] 」は、角かっこではなく、任意の1文字に一致します。 例1 import java.util.regex.Matcher; import java.util.regex.Pattern; public class SpecifiedCharacters { public static void main( String args[] ) { String regex = "[^hwtyoupi]"; String input = &