码迷,mamicode.com
首页 > 其他好文 > 详细

String 类

时间:2020-02-04 17:19:53      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:com   类型   创建   栈内存   integer   引用   相同   内存   查找   

基本概念:

在Java里面String 是作为一个对象来使用的,所以在堆栈里面:栈存储String对象名,而堆是存储对象名所对应的字符串的。


首先基本了解下栈与堆例如:
int de=12;
int ed=12;
Integer de11=new Integer(12);
Integer de1=12;

我们都知道,栈内存是用来存放基本类型(类型值及变量名)和引用类型的变量名的。
在8大‘基本’数据类型里面,上面的变量属性都存在栈里面,并且相等的数据都用同一个地址来表示。
就如上面的例子来说,de和ed它们虽然声明了两个不同的变量名,但是存储地址是一样的。new的Integer对象虽然与前两个相同,但是地址指向的是堆内存。
注意:没有new的Integer跟int没有啥区别,都是存储的常量,放在栈里面。

技术图片技术图片

 


 

String de="你好婷婷";
String de1="你好婷婷";
System.out.println(de==de1);

String都是以一个对象来使用的,所以在声明一个String变量时,变量名是存在栈里面,而变量对应的字符串是存在”堆“里面的。 
de所对应的堆内存地址与de1是相同的。所以上面输出结果应该是true
(当创建String de="你好婷婷";,在创String de1="你好婷婷";
,de1会在内存地址查找是否有相同的,查到de时,de1会将内存地址指向de内存地址,并不会重新开辟新内存)

 


 

String dee1=new String("你好婷婷");
String de1="你好婷婷";
System.out.println(de1==dee1);

说到这里就是废话了,如上面代码所示,两个对象都在堆里面开辟不同的内存地址。所以输出结果false。

 


 

开博第一篇-------来自一个新手的博客。

 

String 类

标签:com   类型   创建   栈内存   integer   引用   相同   内存   查找   

原文地址:https://www.cnblogs.com/xg-ai-tt/p/12260078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!