首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
equal与== 个人笔记
时间:
2014-10-10 19:14:44
阅读:
219
评论:
0
收藏:
0
[点我收藏+]
标签:
栈
heap
string
对象
首先看看下面的图,看清楚了图咱们要说的知识点也就说说清楚了一半
int a=10;
String b="ss";
String c=new String("kkk");
Person d=new Person("dlf");
String e=new String("kkk");
String f="ss";
jvm中有堆heap,栈stack,常量池constant。
我们的基本对象,包括int,double等都放在栈里,引用类型如String,Person(Person 就是一个pojo类而已)引用(如上面的c,d)放在栈里,真实的数据放在堆中。
== 比较的是两个对象在栈中存放的数据是否一样
b==f 比较的就是两个105的地址 (105就是指ss在常量池中的地址)
c==e 一个1063一个1095 自然就不相等了
equals 比较的事堆中的内容
c.equsls(e) 就是两个kkk在比较 答案不言自明
Objeck的equals方法如下
public boolean equals(Object obj) {
return (this == obj);
}
换句话说object的类的==与equals就是一回事
有兴趣的可以看看String的equals方法
关于==与equals说完了,再说说字符串的构建
对字符串的构建 我们最常使用的有两种
String a1="bbb";
String a2=new String("ccc");
两种方式有不同
第一种方式,通过上面的图大家也看到了,bbb这个数据存放在常量池里;准确的说是用String a1="bbb"这种方式产生字符串,jvm首先会在常量池里查找是否有bbb这个数据,如果有就把bbb这个数据的地址给a1,否则就在常量池里新建一个数据单元里面存放bbb,然后把这个单元的地址给a1。(上图中的两个105 就是这个例子)
第二种方式在于 在编译的时候会有一个ccc在常量池,等到运行的时候,会在堆区在创建一个数据单元里面存放ccc,然后a2里面就存放堆里面那个数据单元的地址!另外即使堆中已经有了这个字符串,通过new的方式,还会再产生一个堆区的数据(如上图中的1063与1095)
所以
String a=new String("bbb");
产生了两个对象,一个在堆一个在常量池。
String a=new String("bbb");
String c=new String("ccc");
产生了四个对象,两个在堆两个在常量池。
String a1=new String("sss");
String a2=new String("sss");
对于这种情况,堆区肯定有两个对象,那常量池里面呢? 一个sss还是两个sss 我不敢肯定 但我估计应该是两个。
equal与== 个人笔记
标签:
栈
heap
string
对象
原文地址:http://blog.csdn.net/dlf123321/article/details/39963547
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!