首页 > 编程知识 正文

字符串常量的定义,字符串数组初始化

时间:2023-05-04 03:51:29 阅读:120002 作者:1010

前言strings1=newstring(「Hello”);

String s2=“hello”

s1是字符串对象。 s2和字符串常量、创建过程有什么区别?

内存分配字符串对象s1

在堆栈中定义引用变量s1,在堆中打开内存空间,并将对堆的内存空间的引用分配给s1。 “hello”是常量,它在字符串常量池中查找是否存在“hello”字符串对象,如果没有,它分配用于存储hello的空间,并将空间地址存储在堆中的new上

字符串常量s2

在堆栈中定义引用变量s2,编译器首先去字符串常量池,检查是否存在" hello ",如果不存在,则打开在常量池中存储" hello "的内存空间; 如果存在的话,就没有必要重新开辟空间。 存储在堆栈s2中的值是常量池中的“hello”的内存地址。 相当于指常数池内的“hello”。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。