string的"=="和 equals()的区别

1.我们都知道对于基本数据类型可以通过“==”进行内容的比较

例如 :int x=10;

int y=10;

System.out.println("x==y------->"+x==y)    /-----------> true;

2.对于引用类型(即对象),它的值是堆内存中的地址,因此使用“==”比较的是x和y是否指向同一地址,并不是对象的内容。如果要比较对象的内容,例如判断两个String是否相等,要通过x.equals(y)进行比较。

例如:String str1="hello";

String str2=new String("hello");

String str3=str2;

System.out.println("str1==str2----->"+(str1==str2));  /-------------> false;

System.out.println("str1==str3----->"+(str1==str3));  /-------------> false;

System.out.println("str2==str3----->"+(str3==str3));  /-------------> true;

时间: 2025-01-01 11:29:33

string的"=="和 equals()的区别的相关文章

java String的“==”和equals的区别 (第一篇博客)

==和equals都是有比较是否相等的作用,但是它们二者有什么区别呢? 废话不多说,直接戳重点 ==比较的是地址,equals比较的是内容 但是要注意的是,在java虚拟机中含有字符串池(直接量在此池内),相同内容的字符串直接量对应为相同的对象...说得是不是有点抽象,举例来说明一下吧 String s1="hello"; String s2=new String ("hello"); s1=="hello";//true ,因为都指向直接量&q

Java中字符串比较时==和equals的区别

==是比较两个字符串引用的地址是否相同,即是否指向同一个对象,而equals方法则比较字符串的内容是否相同. 例如String a = "abc"; String b = "abc"; a == b返回true,a.equals(b)同样返回true,这是为什么呢? 原来程序在运行时有一个字符串池,创建字符串时会先查找池中是否有相应的字符串,如果已经存在的话只需把引用指向它即可,如果没有则新建一个. 上例中创建a时,会在字符串池中首先创建一个"abc&qu

java中,==跟equals的区别

在java中,经常有一些刚入行的新手分不清==跟equals的区别.==操作符是专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或者两个变量是否相等,只能用==操作符.如果一个变量指向的数据是对象类型,这时候就涉及了两块内存,对象本身占用已快内存,变量本身也占用一块内存,例如:Object obj = new Object();中,变量obj是一个内存,new Object();是另一个内存.此时,变量obj所对应的内存中存储的数值

java中==与equals的区别

值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同. equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同. ==比较的是2个对象的地址,而equals比较的是2个对象的内容. 显然,当equals为true时,==不一定为true: 一.String中的equals和== 1. public

Java杂谈之String----"=="与equals的区别

在程序代码的编写中,经常涉及到两个字符串的比较 这个时候一般困惑我们的是"=="和equals方法的取舍问题,实际上,只要明白了这两者 比较的区别,我们就能够正确的选择出到底采用哪种方式进行字符串的比较了 首先我们定义两个字符串 String s1 = "hello"; String s2 = new String("hello"); 这两个都建立了"hello"的字符串,但到底有什么不同呢 注意,Java中没有指针的概念,这

==和equals的区别案例+解析

什么理论也先不说,代码先给大家看下: 接下来:用一句话总结==和equals的区别 ==号比较的是内存地址 || equals()比较的是字符串的内容 解析: A ==操作符专门用来比较两个变量的值是否相同,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等       只能用==操作符. B equals方法用来比较两个独立对象的内容是否相同,两条new语句创建了两个对象,然后用s3,s4两个变量分别指向其中的一个对象,这是两个不同的对象,它们

java中的==和equals的区别

关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指正,谢谢. 在JAVA程序中一般的基本类型(值类型int,double,boolean等)都只能通过 = = 来判断值是否相等. 如:System.out.println(1==1);System.out.println(true==true);√ 不能写成System.out.println(1.

C#中 Reference Equals, == , Equals的区别

原文地址:http://blog.csdn.net/wuchen_net/archive/2010/03/23/5409327.aspx 1. ReferenceEquals, == , Equals Equals , == , ReferenceEquals都可以用于判断两个对象的个体是不是相等. a) ReferenceEquals ReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用.对于值类型它总是返回false.(因为Box以后的

==和equals的区别

== 和 Equals 的区别 1. == 是一个运算符. 2.Equals则是string对象的方法,可以.(点)出来. 我们比较无非就是这两种 1.基本数据类型比较 2.引用对象比较 1.基本数据类型比较 ==和Equals都比较两个值是否相等.相等为true 否则为false: 2.引用对象比较 ==和Equals都是比较栈内存中的地址是否相等 .相等为true 否则为false: 需注意几点: 1.string是一个特殊的引用类型.对于两个字符串的比较,不管是 == 和 Equals 这