1行でのJavaリストの初期化

1.はじめに このクイックチュートリアルでは、ワンライナーを使用してリストを初期化する方法を調査します。 2.配列から作成 配列からリストを作成できます。配列リテラルのおかげで、1行で初期化できます。 List list = Arrays.asList(new String[]{"foo", "bar"}); 配列の作成を処理するためにvarargsメカニズムを信頼できます。これにより、より簡潔で読みやすいコードを記述できます。 @Test public void givenArraysAsList_thenInitialiseList() { List list = Arrays.asList(続きを読む »

Javaコピーコンストラクタ

1.はじめに Javaクラスのコピーコンストラクタは、同じJavaクラスの別のオブジェクトを使用してオブジェクトを作成するコンストラクタです。 これは、複数のフィールドを持つ複雑なオブジェクトをコピーする場合、または既存のオブジェクトのディープコピーを作成する場合に役立ちます。 2.コピーコンストラクタを作成する方法 コピーコンストラクターを作成するには、最初に、パラメーターと同じタイプのオブジェクトを受け取るコンストラクターを宣言します。 public class Employee { private int id; private String name; public Employee(Employee employee) { } } 次に、入力オブジェクトの各フィールドを新しいインスタンスにコピーします。 public class Employee { privat続きを読む »

Javaコレクションのインタビューの質問

この記事はシリーズの一部です。•Javaコレクションのインタビューの質問(現在の記事)•Java型システムのインタビューの質問 •Java同時実行インタビューの質問(+回答) •Javaクラスの構造と初期化の面接の質問 •Java8インタビューの質問(+回答) •Javaインタビューの質問でのメモリ管理(+回答) •JavaGenericsの面接の質問(+回答) •Javaフロー制御インタビューの質問(+回答) •Java例外インタビューの質問(+回答) •Javaアノテーションインタビューの質問(+回答) •SpringFrameworkの面接に関する上位の質問 1.はじめに Javaコレクションは、Java開発者向けの技術面接でよく取り上げられるトピックです。この記事では、最も頻繁に尋ねられ、正しく理解するのが難しいかもしれないいくつかの重要な質問をレビューします。 2.質問 Q1。コレクションタイプ階層について説明します。主なインターフェースは何ですか、そしてそれらの間の違いは何ですか? 反復処理可能インタフェースが使用して反復することができる任意のコレクション表すため、各ループ。コレクションからインターフェース継承反復処理可能とは、などの要素がコレクション内にある場合は、チェックの追加やコレクションから要素を削除し、そのサイズを決定するための続きを読む »

Javaで文字列をintまたは整数に変換する

1.はじめに 文字列をintまたは整数に変換することは、Javaでは非常に一般的な操作です。この記事では、この問題に対処する複数の方法を紹介します。 この基本的な変換に取り組む簡単な方法がいくつかあります。 2. Integer.parseInt() 主な解決策の1つは、整数の専用静的メソッドparseInt()を使用することです。これは、プリミティブint値を返します。 @Test public void givenString_whenParsingInt_shouldConvertToInt() { String givenString = "42"; int result = I続きを読む »

最も重要なJVMパラメータのガイド

1。概要 このクイックチュートリアルでは、Java仮想マシンの構成に使用できる最もよく知られたオプションについて説明します。 2.明示的なヒープメモリ–XmsおよびXmxオプション 最も一般的なパフォーマンス関連の方法の1つは、アプリケーションの要件に従ってヒープメモリを初期化することです。 そのため、最小および最大のヒープサイズを指定する必要があります。以下のパラメータは、それを達成するために使用できます。 -Xms[unit] -Xmx[unit] ここで、unitは、メモリ(ヒープサイズで示される)が初期化される単位を示します。単位は、としてマークすることができる「G」 GB用「M」 MBおよび「K」 KBのために。 たとえば、最小2GBと最大5GBをJVMに割り当てる場合は、次のように記述する必要があります。 -Xms2G -Xmx5G Java 8以降、メタスペースのサイズは定義されていません。グローバル制限に達すると、JVMは自動的にそれを増やしますが、不要な不安定性を克服するために、次の方法でメタスペースサイズを設定できます。 -XX:MaxMetaspaceSize=[unit] ここでは、メタスペースの大きさは、我々がに割り当てるメモリの量表すメタスペースを。 Oracleのガイドラインによると、使用可能なメモリの合計に続いて、2番目に影響力続きを読む »

java.util.Formatterのガイド

1。概要 この記事では、java.util.Formatterクラスを使用したJavaでの文字列フォーマットについて説明します。このクラスは、レイアウトの位置合わせと配置をサポートします。 2.フォーマッターの使用方法 Cのprintfを覚えていますか?Javaでの文字列のフォーマットは非常に似ています。 Formatterのformat()メソッドは、Stringクラスの静的メソッドを介して公開されます。このメソッドは、テンプレート文字列と引数のリストを受け入れて、テンプレートに次のものを入力します。 String greetings = String.format( "Hello Folks, welcome to %s !", "Baeldung"); 結果の文字列は次のとおりです。 "Hello Folks, welcome to Baeldung !" テンプレートは、静的テキストと1つ以上のフォーマット指定子を含む文字列であり、特定の位置に配置する引数を示します。 この場合、単一のフォーマット指定子%sがあり、対応する引数に置き換えられます。 3.フォーマット指定子 3.1。一般的な構文 General、Character、およびNumericタイプのフォーマット指定子の構文は次のとおりです。 %[argument_index$][flags][w続きを読む »

Javaのオブザーバーパターン

1。概要 この記事では、オブザーバーパターンについて説明し、いくつかのJava実装の代替案を見ていきます。 2.オブザーバーパターンとは何ですか? オブザーバーは、動作設計パターンです。オブジェクト間の通信を指定します:observableとobservers。観測可能で通知オブジェクトであるオブザーバをその状態の変化について。 たとえば、通信社はニュースを受信したときにチャネルに通知できます。ニュースを受信することは通信社の状態を変えるものであり、それはチャンネルに通知される原因になります。 それを自分たちで実装する方法を見てみましょう。 まず、NewsAgencyクラスを定義しましょう。 public class NewsAgency { private String news; private List channels = new ArrayList(); public void addObserver(Channel channel) { this.channels.add(channel); } public void removeObserver(Channel channel) { this.channels.remove(channel); } public void setNews(String news) { this.news = news; fo続きを読む »

なぜ文字列はJavaで不変なのですか?

1.はじめに Javaでは、文字列は不変です。インタビューで非常によく見られる明らかな質問は、「文字列がJavaで不変として設計されているのはなぜですか?」です。 Javaの作成者であるJamesGoslingは、インタビューで、いつ不変を使用すべきかを尋ねられたことがあります。 可能な限り不変を使用します。 彼はさらに、キャッシング、セキュリティ、複製なしでの簡単な再利用など、不変性が提供する機能を述べる彼の議論を支持しています。 このチュートリアルでは、Java言語の設計者がStringを不変に保つことにした理由をさらに詳しく説明します。 2.不変オブジェクトとは何ですか? 不変オブジェクトとは、完全に作成された後も内部状態が一定のままであるオブジェクトです。つまり、オブジェクトが変数に割り当てられると、参照を更新したり、内部状態を変更したりすることはできません。 不変オブジェクトについて詳しく説明している別の記事があります。詳細については、Javaの不変オブジェクトの記事を参照してください。 3. Javaで文字列が不変なのはなぜですか? このクラスを不変として維持することの主な利点は、キャッシュ、セキュリティ、同期、およびパフォーマンスです。 これらがどのように機能するかについて説明しましょう。 3.1。文字列プールを紹介する 文字列は、最も広く使用さ続きを読む »

Spring JDBC

1。概要 この記事では、SpringJDBCモジュールの実際の使用例について説明します。 Spring JDBCのすべてのクラスは、次の4つの個別のパッケージに分割されています。 core –JDBCのコア機能。このパッケージの下で重要なクラスの一部が含まJdbcTemplate、 SimpleJdbcInsert、SimpleJdbcCallとNamedParameterJdbcTemplateを。 datasource –データソースにアクセスするためのユーティリティクラス。また、JakartaEEコンテナの外部でJDBCコードをテストするためのさまざまなデータソース実装もあります。 オブジェクト–オブジェクト指向の方法でのDBアクセス。クエリを実行し、結果をビジネスオブジェクトとして返すことができます。また、クエリ結果をビジネスオブジェクトの列とプロパティの間でマッピングします。 support –コアおよびオブジェクトパッケージの下のクラスのサポートクラス。たとえば、 SQLException変換機能を提供します。 2.構成 まず、データソースの簡単な構成から始めましょう(この例ではMySQLデータベースを使用します)。 @Configuration @ComponentScan("com.baeldung.jdbc") public class Sp続きを読む »

配列から文字列への変換

1。概要 この短いチュートリアルでは、文字列または整数の配列を文字列に変換して、元に戻す方法について説明します。 これは、一般的に使用されるライブラリのバニラJavaおよびJavaユーティリティクラスを使用して実現できます。 2.配列を文字列に変換します 文字列または整数の配列を文字列に変換する必要がある場合もありますが、残念ながら、この変換を実行する直接的な方法はありません。 配列に対するtoString()メソッドのデフォルトの実装は、Ljava.lang.String; @ 74a10858のようなものを返します。これは、オブジェクトのタイプとハッシュコードのみを通知します。 ただし、java.util.Array続きを読む »