普通的字符串常量在内存当中 是存放在 堆中的常量池当中的
Sting str = "内容"
面试题
String str = "hello";
String str2 = new String("hello");
有什么不同
str 是一个对象
str2是两个对象
public static void main(String[] args) {
String str = "hello";
String str2 = new String("hello");
System.out.println(str == str2); //false
// 比较两个字符换对象的内容
System.out.println(str.equals(str2));//true
}
解析
1_当我们执行第一句话的时候String str = "hello"; 会现在常量池中找 hello
2_当我们使用new 方法创建string对象的时候,会在堆内存开辟一个空间,把首地址返回给 str2 在里面会有一个char类型的数组
3_这个char[ ]={} 类型的数组里面就存放了hallo 然后char 就指向常量池中的常量"hello"
为什么要先有这个char[] 类型的数组
用来一个字符一个字符的进行比较 看源码
网友评论