==与equal的区别

equal主要是判断对象的内存地址引用是不是同一个,即是不是同一个对象

==比较的是内存地址是否相等

若一个变量指向数据是对象类型的,此时涉及两块内存,对象本身占一块内存(堆内存),变量也占一块内存

Object obj=new Object();

变量obj是一个内存,new Object()是另一个内存。

变量obj的内存中的数值就是对象占用内存的首地址

String a=new String(‘‘n‘‘);

String b=new String(‘‘n‘‘);

创建两个对象,a、b两个变量各指同一个对象,但是这是两个不同的对象,

首地址不同所以a==b为false

内容相同a.equals(b)为true

时间: 2024-10-28 22:14:21

==与equal的区别的相关文章

Java 中 == 和 equal 的区别 (String)

String s1 = "abcd"; String s2 = "cdfe"; s1 == s2; // 比较s1和s2这2个对象的地址,如果一样,则为true,否则为false s1.equal(s2); //比较s1和s2的内容,如果相同则为true Java 中 == 和 equal 的区别 (String),布布扣,bubuko.com

==与equal()的区别

在看区别之前,首先来看下以下代码: public class TestEqual { /** * @param args * I am not responsible of this code. * They made me write it, against my will. */ public static void main(String[] args) { // TODO Auto-generated method stub String a = "111"; String b

iOS开发 == 和 equal的区别和联系

对于普通的数据类型,只要值相等==就会返回true,对于两个指针类型的变量,他们必须指向同一个指针变量,也就是他们指向的地址必须相等. equal和使用==来判断两个对象是否相等没有区别. 但是有时候我们比较字符串的时候只要值相等就可以返回true,那是因为重写了equal方法. 对于这个方法,我们可以自己定义他们相等的条件,所有的类都继承自NSObject类,我们都可以重写这个方法. 对于字符串比较,字符串还定义了一个isEqualToString的方法,专门用来判断字符串序列等不等 有一个问

java中 == 与 equal 的区别

先看代码,以及运行结果 public static void main(String[] args) { System.out.println("对象比较"); String str1=new String("str"); String str2=new String("str"); System.out.println("==比较"+(str1==str2)); System.out.println("equal比

java中==与equal()的区别

==和equal()都是用来判断两个变量是否相等的. (1)如果两个变量是基本类型变量,且都是数值型的(不一定数据类型相同),只要是值相同,将返回true; (2)如果两个变量是引用型变量,只有它们指向同一个对象时,==才返回true; (3)equal比较的是两个字符串,只要两个字符串的字符对应相等,就返回true. int it=65; float f1=65.0f; //it==f1 为true char ch=‘A’; //it==ch 为true String str1 = new S

java中==和equal的区别

今天看到了一篇写的很好的博客,所以就转来了 转载地址:http://xiashengchao.iteye.com/blog/753409 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同. equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同. ==比较的是2个对象的地址,而equals比较

Java Script 中 ==(Equal) 和 === (Identity Equal) 的区别和比较算法逻辑

判断两个变量是否相等在任何编程语言中都是非常重要的功能. JavaScript 提供了 == 和 === 两种判断两个变量是否相等的运算符,但我们开始学习的时候 JavaScript 的时候,就被一遍又一遍的告知: === 要求变量的类型和值均相等,才能返回true. 使用 === 来避免因JavaScript 类型转换带来的问题. 这样增加了 JavaScript 语法的灵活性但是也带来很多头疼的问题: 使用 ==/!=是 ===/!== 来判断两个变量是否相等? 为什么,JS 编码推荐使用

java中的equal函数和==

这道题是我注册德问的时候做到的一道简单的概念题目.这里主要借这道题帮大家区分一下在java中"=="和equal的区别: 记住一下两句话就足够了: 1."=="比较的是地址,如果两个对象指向内存中的同一块区域的时候,即地址相同,为true,否则为false 2.equal()比较的是对象的值.

Java基础概叙

写在开头 我没有很牛逼的技术来概括Java的前世今身,这里主要是结合自己对Java的基础的理解,大致给到一些总结. 结合自己最近读的一些书籍,总结下,正如这句话所说:Read a bit and take it out,then come back read some more. 正文 1. Java语言支持4种类型:Interface.class.array.primitive 前三种通常称为引用类型,class实例.array是对象(Object),而primitive的值则不是Object