码迷,mamicode.com
首页 > 编程语言 > 详细

java相等比较:==与equals

时间:2017-09-09 22:39:38      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:bsp   内存   数据类型   ati   字符串常量   stat   引用   ring   比较   

比较分两种:变量之间的比较,变量与值的比较,

引用类型值分两种:如: "abcd" , new String("abcd"); “abcd”相当于a=”abcd”中的a, new String("abcd")相当于b= new String("abcd")中的b;

new分配新的内存地址

         1.基本类型变量一律用==;因为基本数据类型没有equal方法

2.引用类型变量:(引用类型:类,接口,数组)

==:比较的是他们在内存中的地址,即引用相等

equals:String Integer等比较的是值相等 其他未覆写equals方法比较的则是引用相等

备注:

int a = 3;

int b = 3;

int c = 4;

由于基本数据类型大小可知,生存周期可知(定义在方法中,方法退出之后自动销毁),所以出于追求速度,存放在栈中(仅仅指局部变量),当定义了字段3给a之后,再定义b时,首先找有没有以3为字段的地址,如果有,让b也指向3,也就是说a和b的地址是一样的,上两句代码也就等同于int b = a; 当定义c时,发现没有字段4,那么重新开辟存放字段4的地址,让引用c指向字段4。String (如果一个字符串是 String s = "abc";它放在栈里,如果一个字符串 用创建对象的方式 String s = new String("abc");那它是放在了 堆里 而如果单纯的 一个 "abc" 这个输入字符串常量 是放在static segement/栈/String池里),当执行=时,也有类似先查找有没有相同的字符串的过程. toString()方法?

java相等比较:==与equals

标签:bsp   内存   数据类型   ati   字符串常量   stat   引用   ring   比较   

原文地址:http://www.cnblogs.com/nicheken/p/7499458.html

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