首页 > 编程知识 正文

java的变量有哪些类型,java的四种访问级别

时间:2023-05-06 14:14:07 阅读:13976 作者:468

在java中,有两种创建String类型变量的方法。

String str01='abc '; //第一种方式

stringstr02=newstring(ABC ); //第二种方式

第一种方法创建字符串变量时,首先检查JVM方法区域的字符串常量池中是否有存储“abc”的地址,如果有,则指向该地址,如果没有,则将存储文字“abc”的地址作为方法区域

如果使用第二种方法创建String变量,请创建在堆中包含“abc”的对象,以使变量str02指向堆中的对象。

根据上述创建方法,我们来看看以下示例。

String str01='abc ';

String str02='abc ';

stringstr03=newstring(ABC );

stringstr04=newstring(ABC );

system.out.println (STR01==str023360 ) ) ST r01==str 02 );

system.out.println (str03==str043360 ) ) str 03==str 04 );

system.out.println (STR01==str0: ) ) ST r01==str 03 );

分析:

1、创建str01时,如果在方法区域的字符串常量池中没有存储“abc”的地址,则创建在常量池中存储“abc”的地址,以使变量str01指向该地址。 创建str02时,字符串常量池中已存在包含“abc”的地址,并将str02变量指向该地址。 此时,由于str01和str02指向相同的存储器地址,因此' str01==str02 '为真。

2、使用new关键字创建对象时,每次都会在堆中创建新对象,因此str03和str04指向对象的地址不同,' str03==str04 '为false。

3、因为str01指向方法区域,str03指向堆,所以' str01==str03 '为false。

String对象被设计为不可更改的对象。 也就是说,如果字符串对象中的文字值发生更改,则会使用原始地址创建新地址,并创建新对象。

String str01='abc ';

String str02='abc ';

str01='def ';

创建在方法区域的字符串常量池中存储新“def”的地址。 str01指向该地址,str02的方向不变。

以上基于String变量的两种创建方法(详细信息)是编辑共享给大家的所有内容。 希望能作为参考。 另外,我想支持编剧。

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