Equal 和==比较

Equal 和==比较

因为值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
"==" : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同.
"equals" : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
而String是一个特殊的引用型类型,在C#语言中,重载了string 对象的很多方法方法(包括equals()方法),使string对象用起来就像是值类型一样。
string.Copy()会创建一个全新的对象。

string s1 = "abc";
string s2 = "abc";//s1和s2因为值相同,内存在只会分配一块内存abc,则s1和s2地址直接指向该内存
Console.WriteLine("s1==s2:{0}", s1 == s2); true
Console.WriteLine("s1 equal s2:{0}", s1.Equals(s2)); true

string a = "hello";

string b = "o";
string c = "helloo";
string d = a + b;
Console.WriteLine(c == d); true
Console.WriteLine(c.Equals(d));true
Console.WriteLine(ReferenceEquals(c, d));false

Student s11 = new Student(1 );
 Student s22 = new Student(1);
 Console.WriteLine("s11==s22:{0}", s11 == s22); false
 Console.WriteLine("s11 equal s22:{0}", s11.Equals(s22));false

Equal 和==比较

时间: 2024-10-05 15:34:31

Equal 和==比较的相关文章

[LeetCode] Minimum Moves to Equal Array Elements

Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1. Example: Input: [1,2,3] Output: 3 Explanation: Only three moves are needed (remem

com.sun.mail.smtp.SMTPSendFailedException: 553 Mail from must equal authorized user

1.错误描写叙述 553 Mail from must equal authorized user com.sun.mail.smtp.SMTPSendFailedException: 553 Mail from must equal authorized user at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1333) at com.sun.mail.smtp.SMTPTransport.mail

Minimum Moves to Equal Array Elements

Given a non-empty integer array, find the minimum number of moves required to make all array elements equal, where a move is incrementing a selected element by 1 or decrementing a selected element by 1. You may assume the array's length is at most 10

【LeetCode】462. Minimum Moves to Equal Array Elements II

Given a non-empty integer array, find the minimum number of moves required to make all array elements equal, where a move is incrementing a selected element by 1 or decrementing a selected element by 1. You may assume the array's length is at most 10

报错:org.apache.jasper.JasperException: /index.jsp (line: 1, column: 17) equal symbol expected

现象:写了如下一个jsp文件,导入需要用到的两个包: 运行结果报错:org.apache.jasper.JasperException: /index.jsp (line: 1, column: 17) equal symbol expected at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41) at org.apache.jasper.compiler.ErrorDis

java中的equal函数和==

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

Scalaz(4)- typeclass:标准类型-Equal,Order,Show,Enum

Scalaz是由一堆的typeclass组成.每一个typeclass具备自己特殊的功能.用户可以通过随意多态(ad-hoc polymorphism)把这些功能施用在自己定义的类型上.scala这个编程语言借鉴了纯函数编程语言Haskell的许多概念.typeclass这个名字就是从Haskell里引用过来的.只不过在Haskell里用的名称是type class两个分开的字.因为scala是个OOP和FP多范畴语言,为了避免与OOP里的type和class发生混扰,所以就用了typeclas

Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_100_CI_AS" in the equal to operation.

ErrorMessage Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_100_CI_AS" in the equal to operation. 查看SQL Server的Collation SELECT SERVERPROPERTY ('Collation') Solution 1. 在安装SQL Server的时候

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

浅谈JDK的File.equal()

我们一般比较两个文件对象是否同一个文件,一般会使用java.io.File.equal().这里所说的equal()并不是比较文件内容是否一样,而是看两个文件对象是否指向同一个文件. File的equal()方法,实际上调用了当前文件系统FileSystem的compareTo(). public boolean equals(Object obj) { if ((obj != null) && (obj instanceof File)) { return compareTo((File