文字列の操作
メニューを表示するにはスワイプしてください
Javaにおける文字列は、文字の並びを表すオブジェクト。StringクラスはJavaで最も一般的に使用されるクラスの一つであり、テキスト操作のための豊富なメソッドを提供。Stringクラスの重要な特徴の一つは**不変性(イミュータブル)**であり、一度Stringオブジェクトが生成されると、その値は変更不可。文字列を連結や置換などで変更しようとすると、元のオブジェクトを変更するのではなく、新しいStringオブジェクトが生成される。
文字列リテラル(例:"hello")を作成すると、Javaはそれを文字列プールと呼ばれる特別なメモリ領域に格納。同じ値の文字列リテラルが再度作成された場合、新しいオブジェクトを生成せず、既存のプール内オブジェクトを再利用。この動作によりメモリ効率が向上し、2つの参照が同じプール内オブジェクトを指している場合、==演算子による比較が高速化。ただし、2つの文字列の内容自体を比較する場合は、equals()メソッドを使用する必要がある(==演算子は参照の同一性のみを比較し、内容の同一性は判断しない)。
Main.java
12345678910111213141516171819202122232425package com.example; public class Main { public static void main(String[] args) { String greeting = "Hello"; String name = "Alice"; // Concatenation String message = greeting + ", " + name + "!"; System.out.println(message); // Prints: Hello, Alice! // Substring extraction String sub = message.substring(7, 12); System.out.println(sub); // Prints: Alice // Comparison using equals() String anotherName = "Alice"; System.out.println(name == anotherName); // May print: true System.out.println(name.equals(anotherName)); // Always prints: true // Comparing strings created with new String newName = new String("Alice"); System.out.println(name == newName); // Prints: false System.out.println(name.equals(newName)); // Prints: true } }
1. Javaにおける文字列の不変性について正しい記述はどれか?
2. Javaで2つの文字列が等しいかどうかを比較する正しい方法はどれですか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 2
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 2