JAVA ==与equals区别

== 是一个运算符,Equals则是string对象的方法。

==在基本数据类型比较时,比较值是否相等;在比较引用对象时,比较地址是否相同。equals()只用于比较值相等。

1.基本数据类型比较

==既可以比较int,double类型,也可以比较String类型。相等为true,否则为false。

equals()是String对象的方法,只能用于比较String变量的值。相等为true,否则为false。

例1:

代码:

public static void main(String[] args) {

// TODO Auto-generated method stub

int a=11;

int b=11;

String c="abc";

String d="abc";

if(a==b)

System.out.println("true");

else

System.out.println("false");

if(c==d)

System.out.println("true");

else

System.out.println("false");

}

结果:

true

true

2、引用对象比较

==比较栈内存中的地址是否相等 ,相等为true 否则为false。equals比较值,相等为true,否则为false。

例2:

代码:

public static void main(String[] args) {

String d="abc";

String e=new String("abc");

if(e==d)

System.out.println("true");

else

System.out.println("false");

}

结果:

false

true

时间: 2024-12-08 15:07:13

JAVA ==与equals区别的相关文章

Java == 和 equals 区别

先来看一段代码 1. String str1 = new String("hello");//堆中分配一块内存,存放"hello",str1 指向内存地址 2. String str2 = new String("hello");//堆中分配一块内存,存放"hello",str2 指向内存地址 3. 4. System.out.println(str1==str2); //false 5. System.out.println

【转】Java中equals和==的区别

[转]Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值. 2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false. JAVA当中所有的类都是继承于Object这个基类的,

Java中equals与==和comparaTo的区别

一.先说说Java中equals和==的区别: Java中的数据类型,可分为两类: 1.基本数据类型(也叫原始数据类型) 八大基本数据类型 char byte short int long double float boolean 2.引用数据类型(也就复合数据类型)除了上面的8个,其他都是引用数据类型 区别: 基本数据类型比较只能用==,不能用equals,因为用equals(参数),参数必须为对象. 他们之间的比较,比较的是他们的值. public class Test { public s

Java中的==和equals区别

引言:从一个朋友的blog转过来的,里面解决了两个困扰我很久的问题.很有久旱逢甘霖的感觉. 中软国际电子政务部Jeff Chi总结,转载请说明出处. 概述:        A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同:当用于引用类型的时候,是比较对象是否相同.        B.对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的.        C.基本类型没有equals方法,equals只比较值(对象中的

java中equals和==的区别 (转)

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

Java中equals、==和instanceof的区别

本文转自http://blog.csdn.net/t12x3456/article/details/7341515 (1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同. “==”比较两个变量本身的值,即两个对象在内存中的首地址. “equals()”比较字符串中所包含的内容是否相同. 比如: String s1,s2,s3 = "abc", s4 ="abc" ; s1 = new String("abc"

Java面试求职之==与equals()区别

Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型(也称原始数据类型):byte,short,char,int,long,float,double,boolean,他们之间的比较,应用双等号(==),比较的是他们的值. 2.复合数据类型(类):当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址.所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false. JAVA当中所有的类都是继承于Object这个基类的,在O

关于java中equals与==的区别的小实验

java中equals与==经常容易混淆,简单一点说就是equals比较的是值是否相等,是一种方法,==比较的是二者是都为同一对象,是一种操作符. 做了几个小实验比较结果. 实验一: String str1="ab": String str2="ab": System.out.println(s1==s2)://trueSystem.out.println(str1.equals(str2));//true 这里的str1与str2都指向了常量池中的同一对象,所以S

Java中equals和hashcode的区别?

Java中equals和hashcode方法是在Object对象中的,所以每个对象都有这两个方法,大多数时候我们为了实现特定需求需要重写这两个方法 equals和hashcode方法常用在同一个类中用于比较,尤其是在set集合中比较元素是否重复 equals方法返回true的两个对象,hashcode一定相同 hashcode相同的两个对象,equals方法不一定返回true 原文地址:https://www.cnblogs.com/qf123/p/8671141.html