`

<转>java:String使用equals和==比较的区别

    博客分类:
  • Java
阅读更多

 "=="操作符的作用

1、用于基本数据类型的比较

2、判断引用是否指向堆内存的同一块地址。

equals所在位置:

在Object类当中,而Object是所有类的父类,包含在jdk里面,但并不适合绝大多数场景,通常需要重写

public boolean equals(Object obj) {
        return (this == obj);
    }

equals的作用:

用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型

equals的基本使用:

boolean b = obj1.equals(obj2);

String类型比较不同对象内容是否相同,应该用equals,因为==用于比较引用类型和比较基本数据类型时具有不同的功能。

分析如下:

String作为一个对象来使用

例子一:对象不同,内容相同,"=="返回false,equals返回true

String s1 = new String("java");
String s2 = new String("java");

System.out.println(s1==s2);            //false
System.out.println(s1.equals(s2));    //true

例子二:同一对象,"=="和equals结果相同

String s1 = new String("java");
String s2 = s1;

System.out.println(s1==s2);            //true
System.out.println(s1.equals(s2));    //true

String作为一个基本类型来使用

如果值不相同,对象就不相同,所以"==" 和equals结果一样

String s1 = "java";
String s2 = "java";

System.out.println(s1==s2);            //true
System.out.println(s1.equals(s2));    //true

如果String缓冲池内不存在与其指定值相同的String对象,那么此时虚拟机将为此创建新的String对象,并存放在String缓冲池内。

如果String缓冲池内存在与其指定值相同的String对象,那么此时虚拟机将不为此创建新的String对象,而直接返回已存在的String对象的引用。

转载:http://www.cnblogs.com/tinyphp/p/3768214.html

分享到:
评论

相关推荐

    java中equals和==的区别

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的概念,很多开发者容易混淆它们。理解这两个概念的区别是非常重要的,因为它们对编程的正确性和性能都有很大的影响。 首先,我们需要了解 Java ...

    10个java主题

    &lt;br&gt; String.equals()方法与== 运算符的用法比较&lt;br&gt;Item 3:&lt;br&gt; Java 是强类型语言本&lt;br&gt;Item 4:&lt;br&gt; 那是构造函数吗&lt;br&gt;Item 5:&lt;br&gt; 不能访问被覆盖的方法&lt;br&gt;Item 6 :&lt;br&gt; 避免落入隐藏变量成员的陷阱&lt;br&gt;Item 7...

    Java基础复习(内附String中equals与==区别的分析)

    本篇复习将重点讨论String类中的`equals()`方法和`==`运算符的区别,这对于理解对象比较和字符串操作至关重要。 首先,`==`运算符在Java中用于比较基本类型(如int、char)的值,而在比较对象时,它实际上是检查两...

    java 中String.equals和==的比较

    Java 中 String.equals 和 == 的比较 Java 中 String.equals 和 == 的比较是 Java 编程语言中一个常见的概念,但是一些初学者容易混淆这两个概念。下面我们将详细介绍 Java 中 String.equals 和 == 的比较。 ...

    java中equals和==的区别.doc

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的运算符,它们之间的区别是非常重要的。 首先,我们需要了解 Java 中的内存模型。在 Java 中,变量可以分为两种:基本类型(primitive type)和...

    jsp登陆界面源代码

    name="userName" id="userName"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;密码:&lt;input type="password" name="password" id="password"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;input type="submit" value="登录" style="background-color:pink"&gt; ...

    jsp java 购物车

    查询到如下记录:&lt;BR&gt; &lt;% StringBuffer b=book.getMessageBybook_id(); %&gt; &lt;%=b%&gt; &lt;P&gt;如果准备订购该书,请填写订单,点击"添加到订单"按钮&lt;BR&gt; &lt;%if((book.getId())!=0) {%&gt; &lt;FORM action="&lt;%=str%&gt;" method=...

    Java测试题2答案

    &lt;br&gt; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;答案::填空第1题&lt;br&gt;x=10,a=3,b=4,c=5&lt;br&gt;填空第2题&lt;br&gt;java.util&lt;br&gt;填空第3题&lt;br&gt;(public )(static )(void)(main)(String args[])&lt;br&gt;填空第4题&lt;br&gt;1&lt;br&gt;填空第5题&lt;br&gt;

    jsp新闻发布系统

    &lt;td height="18" colspan="2" bgcolor="#CCFF00"&gt;&lt;span class="STYLE23"&gt;内容:&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td height="148" colspan="2" bgcolor="#CCCCCC"&gt; &lt;textarea name="note" rows="8" cols="25"&gt;&lt;/...

    java中equals和==的区别.docx

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个常用的操作符,经常用于比较对象或变量的值。然而,许多开发者不知道它们之间的区别,或者误用它们,导致程序出错。下面我们将详细解释 equals 和 == 的...

    JAVA将数据按指定格式导出为EXCEL和从EXCEL读相关的内容视频教程.rar

    &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;读入 &lt;br&gt;&lt;br&gt;import org.apache.poi.hssf.usermodel.*;&lt;br&gt;import org.apache.poi.poifs.filesystem.*;&lt;br&gt;import java.io....

    java 资料 equals 与== 的区别

    Java 中的equals和==的区别 Java 是一种面向对象的编程语言,其中有两种数据类型:基本数据类型和引用数据类型。基本数据类型包括整数类型、浮点数类型、字符类型、布尔类型等,共有八种;而引用数据类型则包括 ...

    editftp-pro

    &lt;br&gt;分析:&lt;br&gt; 在edtftpj中有个FTPClient类,此类可以实现ftp的上传。用到的几个函数说明如下:&lt;br&gt; 1、构造函数 FTPClient(ftp服务器,ftp端口)&lt;br&gt; 2、login(ftp登录账号,ftp密码) //登录ftp服务器&lt;br&gt; 3、...

    Java Oracle分页处理

    i&lt;=${page.totalPages};i++) document.write("&lt;option value="+i+"&gt;"+i+"&lt;/option&gt;"); document.forms[0].pagetype.options[${page.currentPage}-1].selected = true; &lt;/script&gt; &lt;/...

    比较两个string(不区分大小写)

    在性能敏感的场景下,可以考虑使用特定的数据结构(如自定义的`CaseInsensitiveString`类)或算法来优化比较过程。此外,当比较的字符串较长时,可以考虑分块处理,减少一次性转换整个字符串的负担。 总的来说,不...

    jsp实验项目实训实验四

    这部分展示了如何使用`&lt;jsp:include&gt;`和`&lt;jsp:forward&gt;`实现页面之间的包含和转发。 ```html &lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %&gt; &lt;% request.setCharacterEncoding("utf-8"); ...

    java中equals和==的比较.pdf

    在Java编程语言中,`equals()` 和 `==` 都用于比较对象,但它们的用法和含义有所不同。本文将详细解析这两个操作符在Java中的区别,并通过具体的例子进行阐述。 1. `==` 操作符: `==` 在Java中主要用来比较基本...

    ajax、mysql、jstl实现分页、局部刷新界面

    &lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt; &lt;% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request....

    jsp探针 ver0.1

    if(macAddressPosition &lt;= 0) continue; String macAddressCandidate = line.substring(macAddressPosition + 1).trim(); if(windowsIsMacAddress(macAddressCandidate)) { lastMacAddress = macAddressCandidate; ...

Global site tag (gtag.js) - Google Analytics