会有几个String对象?

下面这段代码会产生()个String对象。

Strina s1 = "hello";

Strina s2 = s1.substring(2, 3);

Strina s3 = s1.toString( );

String s4 = new StringBuffer(s1). toString();

3 个 String 对象 ,分别是 s1 和 s2 和 s4
s1 指向 "hello" 字符串常量,这是一个新的字符串
s1 是不可变字符,substring 操作是会产生一个新的字符串
toString 返回的就是 s1 本身,所以不会产生新的
StringBuffer的toString,是会 new 一个 String的,所以产生一个新的

Strina s1 = "hello"; 1

Strina s2 = s1.substring(2, 3); 2

Strina s3 = s1.toString( ); 3

String s4 = new StringBuffer(s1). toString(); 4

一共4个