`
jewel_m
  • 浏览: 17471 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java中equals()函数的用法 equals和==的区别

 
阅读更多

值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。

==比较的是2个对象的地址,而equals比较的是2个对象的内容。
显然,当equals为true时,==不一定为true;


一、String中的equals和==

public class TestString {
     public static void main(String[] args) {
         String s1 = "Monday";
         String s2 = "Monday";
     }
}

 

上面这段程序中,到底有几个对象呢?
来检测一下吧,稍微改动一下程序

public class TestString {
     public static void main(String[] args) {
         String s1 = "Monday";
         String s2 = "Monday";
         if (s1 == s2)
             System.out.println("s1 == s2");
         else
             System.out.println("s1 != s2");
     }
}

 

 

编译并运行程序,输出:s1 == s2
说明:s1 与 s2 引用同一个 String 对象 -- "Monday"
!

public class TestString {
     public static void main(String[] args) {
         String s1 = "Monday";
         String s2 = new String("Monday");
         if (s1 == s2)
             System.out.println("s1 == s2");
         else
             System.out.println("s1 != s2");
         if (s1.equals(s2))
             System.out.println("s1 equals s2");
         else
             System.out.println("s1 not equals s2");
     }
}

 ....

更多请看附件

分享到:
评论

相关推荐

    java equals函数用法详解

    java 中equals函数的使用方法是广大java爱好者所关心的一个话题,本文将详细介绍其使用方法,需要了解的朋友可以参考下

    解析Java对象的equals()和hashCode()的使用

    在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个。在多数情况下,这两个函数是不用考虑的,直接使用它们的默认设计就可以了。但是在一些情况下,这两个...

    java二开面试笔试题

    本资源摘要信息中,我们将总结 Java 面试笔试题中的知识点,涵盖 Java 基础、Java 集合框架、Java垃圾回收、Java 方法返回值、Java 对象引用、Java 构造函数执行顺序等方面的知识点。 一、Java 基础知识点 1. Java...

    java必刷面试题答案

    本文将详细讲解java基础知识中的几个重要问题,包括JDK和JRE的区别、==和equals的区别、hashCode和equals的关系、final关键字的作用、Math.round函数的作用、String类的基本知识、抽象类和接口的区别、IO流的分类等...

    Java岗面试核心MCA版.pdf

    1. 成员变量和局部变量的区别:成员变量是类的成员变量,而局部变量是方法或构造器中的变量。 2. 作用域和存储位置:变量的作用域和存储位置取决于变量的声明位置。 3. 生命周期:变量的生命周期取决于变量的...

    Java实验报告模板.doc

    本文档主要介绍 Java 实验报告模板,涵盖 Java 编程环境的配置、Java 程序的编写、编译、运行等过程、Java 语言的基本语法和运行原理、集成开发环境的使用方法等多个方面的知识点。 1. Java 运行环境的配置 Java ...

    10个java主题

    10个JAVA主题,Item 1: 什么时候被覆盖的方法并非真的被覆盖了 Item 2: String.equals()方法与== 运算符的用法比较 Item 3: Java 是强类型语言本 Item 4: 那是构造函数吗 Item 5: ...

    2023年开发人员面试宝典Java版.docx

    Java 开发人员面试知识点总结 ...Java 中有多种方式来新建对象,例如使用 new 关键字、使用构造器、使用工厂方法等。 1.16 & 和 && 的区别 & 是 Java 中的按位与运算符,&& 是 Java 中的逻辑与运算符。

    java函数[定义].pdf

    本文将介绍 Java 函数的常用方法,包括字符串操作、文本框和文本区、按钮、标签等。 字符串操作 在 Java 中,字符串是 String 类的实例对象,可以使用各种方法来操作字符串。常用的字符串操作方法包括: 1. 获取...

    Java面试宝典Beta6.0.pdf

    本节课主要讲解Java基础知识,包括跨平台性、逻辑运算符、构造器、break、continue、return语句、equals和hashCode方法、String类继承、值传递和引用传递等内容。 1. 跨平台性 Java语言编写的程序,一次编译后,...

    java面试宝典

    187、JAVA SERVLET API中forward() 与redirect()的区别? 44 189、Can a Java Thread be started from Servlet class, and what will be the implications? 45 190、What is ...

    74个java面试题,只有题目没有答案

    * Java 中什么是 hashCode 和 equals 方法?hashCode 方法用于返回对象的哈希码,equals 方法用于比较两个对象是否相等。 50. Java 接口继承 * Java 中什么是接口继承?接口继承是一种机制,用于继承多个接口。 ...

    JAVA试题及答案50道选择题-java选择题及答案.doc

    JAVA 中的字符串比较可以使用 == 运算符或 equals() 方法。例如: String s1 = "john"; String s2 = "john"; System.out.println(s1 == s2); // true System.out.println(s1.equals(s2)); // true 12. switch 语句...

    java常用类的使用方法.pdf

    Java常用类的使用方法 Java语言中提供了多种常用类,例如Integer类、Float类、Double类、Character类、String类、StringTokenizer类、StringBuffer类、Random类等,这些类提供了许多实用的方法,以便开发者更方便地...

    2023年JAVA语言程序设计期末考试试题及答案应考必备题库.doc

    * 知识点:Java 语言中的字符串比较、equals() 方法和 == 运算符的使用。 单选题5 * 题目:Hashtable hashtable=new Hashtable();hashtable.put("x","12345");hashtable.put("y","67890");hashtable.put("a",...

    JAVA面试题最全集

    9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中...

    5_Java寒假作业.docx

    本文总结了 Java 的基础知识点,涵盖了 Java 的开发工具包、运行时环境、环境变量、Java 虚拟机、装箱和拆箱、equals 方法和==的区别、类和对象的区别、成员变量和静态变量的特点、子类的构造函数、this 和 super 的...

    java核心知识点整理

    2.运行一个已经编译的程序时,Java解释器总是从指定类的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强类型语言,即必须声明变量的类型,Java中有8种类型,6种数值类型(4个...

Global site tag (gtag.js) - Google Analytics