`

java编程中 =和==和equals 有什么区别

阅读更多
= 是赋值;
== 判断两个对象所引用的内存地址是否是相同
比如2个字符串对象
String s1 = new String("str");
String s2 = new String("str");
如果用==号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。
equals()比较的是对象的值,equals方法是从Object继承来的,Java中任何对象都自动有这个方法; 它是java.lang.Object类中的一个方法。因为java中所有的类都默认继承于Object,所以所有的类都有这个方法。

在Object类源码中是这样写的。
public boolean equals(Object obj) {
return (this == obj);
}


   *内存分为四个部分:heap(堆)\stack(栈)\code segment\data segmet\
其中堆中存放的是NEW 出来的对象 而栈中存放的是局部变量 而静态变量和字符串常量放在data segment中 剩下的就是代码了 ,存放在CODE SEGMENT中
http://zhidao.baidu.com/question/90177394.html?si=5
http://zhidao.baidu.com/question/86391504.html?si=4

  *以Java中用堆来存储对象。而一旦堆中的对象被销毁,我们继续引用这个对象的话,就会出现著名的 NullPointerException,这就是堆的缺点——错误的引用逻辑只有在运行时才会被发现。
  http://zhidao.baidu.com/question/19040466.html?si=2




(1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。
“==”比较两个变量本身的值,即两个对象在内存中的首地址。
“equals()”比较字符串中所包含的内容是否相同。
(2)对于非字符串变量来说,"=="和"equals"方法的作用是相同的都是用来比较其
对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。
1) 如果是基本类型比较,那么只能用==来比较,不能用equals
(2) 对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的。
分享到:
评论

相关推荐

    关于Java中的“==”与equals()

    最近在学习Java程序设计,学到“==”和Object类中的equals()方法的时候有点混乱。 上结论!!! “==”:用于判断二者是否同一,即二者的引用变量是否指向同一个对象。 Object.equals():用于判断二者是否相等,即...

    java面试题.docx

    JDK 和 JRE 有什么区别? == 和 equals 的区别是什么? 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java 中有什么作用? java 中操作字符串都有哪些类?它们之间有什么区别? 如何将...

    面试必问Java面试题,对标初级Java

    1.Java泛型(约束类型) 2.Java中函数式编程-Stream...16.重载和重写的区别(区别无参构造和有参) 17.Java中异常处理机制 18.java中==equals有哪些区别 19.ArrayList和LinkedList有什么区别 20.Java面向对象有哪些特征

    java 面对对象编程.pdf.zip

    接口和抽象类有什么共同点和区别? 深拷贝和浅拷贝区别了解吗?什么是引用拷贝? Java 常见类 Object Object 类的常见方法有哪些? == 和 equals() 的区别 hashCode() 有什么用? 为什么要有 hashCode? 为什么重写 ...

    java 经典面试题30道

    = =和equals有什么区别? 答: = =是操作符号,对于基本类型来说比较的是值,对于引用类型来说,比较的是引用,也可以理解为内存地址。而equals方法是属于超类Object的方法,其实默认情况下也是用==比较,只是很多类...

    Java编程中的equals方法使用全解

    主要介绍了Java编程中的equals方法使用全解,是Java入门学习中的基础知识,需要的朋友可以参考下

    Java编程中避免equals方法的隐藏陷阱介绍

    主要介绍了Java编程中避免equals方法的隐藏陷阱介绍,具有一定参考价值,需要的朋友可以了解下。

    Java常见面试题208道.docx

    118.在 hibernate 中使用 Integer 和 int 做映射有什么区别? 119.hibernate 是如何工作的? 120.get()和 load()的区别? 121.说一下 hibernate 的缓存机制? 122.hibernate 对象有哪些状态? 123.在 hibernate 中 ...

    最全java面试题及答案

    1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。 ...

    java面试宝典

    8、int 和Integer 有什么区别? 9 9、&和&&的区别? 9 10、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别? 9 11、heap 和stack 有什么区别? 9 12、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 9 13、...

    JAVA编程计算器和记事本.rar

    else if(menu.getActionCommand().equals("选择全部")){ ta.selectAll(); } else if(menu.getActionCommand().equals("清屏")){ ta.setText(""); } } }; ItemListener il =new ItemListener(){ public ...

    Java面试题-基础和集合.docx

    这些内容不仅有助于面试者在面试中展现自己的深厚技术功底,还可以帮助读者更深入地理解Java编程语言的内部机制和设计原理。 总的来说,该文件提供了一份全面的Java面试准备指南,涵盖了从基础知识到高级概念的各个...

    Java的Object类讲解案例代码 equals()、hashCode()、finalize()、clone()、wait()

    Java初学者:如果你是刚开始学习Java编程,那么Object类是一个重要的基础知识点。通过该案例代码,你可以学习如何在自己的类中正确重写equals()、hashCode()、toString()等方法,提高代码质量和可读性。 经验丰富的...

    Java测试题2答案

    《Java测试题2》 <br>一、 选择 1.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ? B A ArrayList myList=new Object(); B List myList=new ArrayList(); C ...

    Java基础部分 Java代码查错算法与编程html&JavaScript&ajax部分面试题

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 2 2、Java有没有goto? 2 3、说说&和&&的区别。 57、介绍Collection框架的结构 2 58、Collection框架中实现比较要实现什么接口 2 59、...

    简单的JAVA程序.

    import java.util.*; public class dom6 { public static void main(String[] args){ Scanner input = new Scanner(System.in); String yes; do { System.out.println("★★★★★★★★欢迎使用万年历★...

    java编程基础,应用与实例

    第1章 什么是Java程序设计语言 1 1.1 Java语言诞生背景 1 1.2 Java语言的特点 1 1.2.1 可移植性(universality) 1 1.2.2 安全性(security) 1 1.2.3 Java Virtual Machine(JVM) 2 1.2.4 面向对象的程序...

    java中关键字Object详解

    Object是Java编程中的基础类,所有类都直接或间接地继承了它,并从它继承了一些方法,如equals()、toString()和getClass()等。 首先,Object类是Java中的根源,它定义了所有Java类的通用行为,如Object类的toString...

Global site tag (gtag.js) - Google Analytics