字符串初始化

来源:互联网 发布:json 中括号 编辑:程序博客网 时间:2024/06/03 23:40

字符串初始化的两种方式:

 String s1= " hello";

String s2 = new String("hello");

第一种方式会在栈中创建一个对象引用变量,然后查看字符串池(关于字符串池参考文末链接)中是否已经存在该字符串(“hello”),如果存在则对象的引用直接指向字符串池中该字符串;如果不存在,则将创建的字符串对象放入字符串池中,并让引用变量指向它。

第二种方式在堆中创建对象,每次都创建新的对象


*字符串池:“字符串池”,是Java为了提高内存利用率而采用的措施:当遇到String a = "Hello"; 这样的语句时,Java会先在字符串池中寻找是否已经存在"Hello"这个字符串,如果没有,则建立字符串"Hello"对象,然后变量 a 指向这个地址;然后遇到语句String b = "Hello",这时字符串池中已经有 "Hello"了,所以直接让变量b也指向这个地址,省去了重新分配的麻烦。

原创粉丝点击