String オブジェクトを作成するには 2 つの方法があります。
String str = new String("Java");
String str2 = "Java";
最初のケースでは、コンストラクターが確実に呼び出されることを知っています。しかし、2番目のものについては知りません。コンストラクターは呼び出されますか?
String substr = new String(str.substring(2,str.length)); // str is new object
String substr2 = new String(str2.substring(2,str2.length)); //str2 is not with new keyword
ヒープメモリ内で同じ種類の操作と同じ動作であることを確認substr
したい。substr2
String.substring()
新しいオブジェクトをまったく作成せず、以前の char[] オブジェクトを異なるオフセットで使用することを 1 つ知っています。
とはどうsubstr
なりsubstr2
ますか?オフセットはコンストラクター内で生成されるため、これらをコンストラクターに関連付けることはできますか。