`

<转>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

分享到:
评论

相关推荐

    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和==的比较

    主要介绍了java 中String.equals和==的比较的相关资料,需要的朋友可以参考下

    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; ...

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

    NULL 博文链接:https://771816006-qq-com.iteye.com/blog/1394972

    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;

    flexjava交互

    &lt;source&gt;bean.MoginDemo &lt;/source&gt; &lt;scope&gt;application&lt;/scope&gt; &lt;/properties&gt; &lt;/destination&gt; 3. java package bean; import java.util.*; public class LoginDemo { public String validateLogin(String ...

    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....

    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;/...

    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;/...

    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; ...

    java自定义分页标签

    //out.print("&lt;li&gt;&lt;a href='#'&gt;首页&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#'&gt;上一页&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#'&gt;下一页&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#'&gt;尾页&lt;/a&gt;&lt;/li&gt;&lt;li&gt;共 200 条记录&lt;/li&gt;&lt;li class='seach'&gt;转到&lt;select name='...

    Java JDK实例宝典

    &lt;br&gt;第1章 Java基础 &lt;br&gt;1.1 转换基本数据类型 &lt;br&gt;1.2 Java的运算符 &lt;br&gt;1.3 控制程序的流程 &lt;br&gt;1.4 计算阶乘 &lt;br&gt;1.5 实现命令行程序 &lt;br&gt;第2章 Java面向对象程序设计 &lt;br&gt;2. 1 复数类 &lt;br&gt;2. 2 equals.chashCode...

    AIC的Java课程1-6章

    第5 版 清华大学出版社&lt;br&gt; “SCJP学习指南” 人民邮电出版社&lt;br&gt; “Java 编程思想” 第3版 机械工业出版社&lt;br&gt; 教学内容和要求&lt;br&gt;知识点 重要程度 使用频度 难度&lt;br&gt;Java 入门 高 中 易&lt;br&gt;变量和运算符 高 ...

    jspSmartUpload上传下载

    &lt;tr&gt;&lt;TD width=18% align="center"&gt;date:&lt;/TD&gt; &lt;td align=center width='18%'&gt;&lt;input type="text" name="checkdate" size="12" readonly=true&gt;&lt;/td&gt; &lt;TD width=18% align="center"&gt;type:&lt;/TD&gt; &lt;td ...

    dom4j

    &lt;br&gt;&lt;br&gt; }&lt;br&gt;&lt;br&gt;&lt;br&gt; /**&lt;br&gt;&lt;br&gt; * 格式化XML文档,并解决中文问题&lt;br&gt;&lt;br&gt; * @param filename&lt;br&gt;&lt;br&gt; * @return&lt;br&gt;&lt;br&gt; */&lt;br&gt;&lt;br&gt; public int formatXMLFile(String filename){&lt;br&gt;&lt;br&gt; int returnValue = 0;...

    galaxy-java 开源java框架。

    &lt;td&gt;&lt;%=map.getString("telphone")%&gt;&lt;/td&gt; &lt;/tr&gt; &lt;%}%&gt; &lt;/table&gt; &lt;%=com.zxhy.fxpt.common.util.StringUtil.getdaohang(pageinfo.getInt("pagecount"),pageinfo.getInt("pagenum"))%&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;...

    java语言程序设计课后习题答案解析.doc

    } } } 法二:&lt;建议使用&gt; public class Exercise5{ public static void main&lt;String[] args&gt;{ int n=1678; int unit; int decimal; int hundred; int thousand; thousand=n/1000%10; hundred=n/100%10; decimal=n/10...

Global site tag (gtag.js) - Google Analytics