Java 这是内存中String和StringBuffer程序的正确表示形式吗?
包装串 //概览:Memmory中的字符串和字符串缓冲区表示 公共类字符串{Java 这是内存中String和StringBuffer程序的正确表示形式吗?,java,memory-management,heap-memory,stack-memory,Java,Memory Management,Heap Memory,Stack Memory,包装串 //概览:Memmory中的字符串和字符串缓冲区表示 公共类字符串{ public static void main(String args[]){ String s=new String("Hello"); String t=new String("Hello"); StringBuffer sb=new StringBuffer("He"); StringBuffer tb=sb; String s1="Hello"; Stri
public static void main(String args[]){
String s=new String("Hello");
String t=new String("Hello");
StringBuffer sb=new StringBuffer("He");
StringBuffer tb=sb;
String s1="Hello";
String t1="Hello";
sb.append("llo");
tb.append(" goodbye!");
s.concat("goodbye!");
t=s.concat("goodbye!");
}
}
内存表示
否。字符串文字被合并,因此,每次只出现一次。是的,这是在集合映射中正确表示的键值中使用的键概念字符串,为什么sun被指定为字符串g作为不可变对象,为什么String类equals和hashCode方法是多余的方法,但在stringBuffer类中,这些方法不是多余的方法sb和tb引用相同的StringBuffer,因此更改一个也会更改另一个。s、 混凝土。。。返回一个新的合并字符串并返回它。如果未分配或使用,连接的字符串将丢失。字符串和StringBuffer是不同的:字符串不可变=不可更改,而StringBuffer可变=可更改。@MarkusKull和append如何?@MarkusKull如果使用新关键字创建字符串而不使用new怎么办。两者是否具有相同的引用或都指向相同的对象?append更改可变StringBuffer。用new创建的字符串总是一个不同的对象,但这并不重要,因为字符串是不可变的,不能更改。