在C++中,两个字符串比较的代码可以为:

(string1==string2)

但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false

Java中必须使用string1.equals(string2)来进行判断

eg:

string s1="Hello";

string s2="Hello";

则(s1==s2)=true;

因为他们指向的同一个对象。

eg:

String s1=new String("Hello");

String s2=new String("Hello");

则(s1==s2)=false

如果把其他变量的值赋给s1和s2,即使内容相同,由于不是指向同一个对象,也会返回false。所以建议使用equals(),因为equals比较的才是真正的内容

例如:

String string1=new String( "aaa" );

String string2=new String( "aaa" );

这两个字符串当然应该是相等的。

如果用表达式string1==string2,则该表达式的值为false

如果用表达式string1.equals(string2),则该表达式的值为true

因此应该用string1.equals(string2),在if语句中就是

if(string1.equals(string2)==true) //字符串相等,……

string1==string2,是值相等,而且内存地址也相等,是完全的相等

string1.equals(string2)为true,只是值相等

java中hashcode()和equals()的详解

今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong 2008.10.23晚21.36). 1. 首先equals()和hashc ...

java中的==和equals的区别

关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指 ...

java中的==和equals

1,==用于比较基本数据类型,和引用类型.而equals是Object上的方法,可以被子类重写,用于判断内容一致. 比较奇葩的是,java基本数据类型(byte,short,int,long,floa ...

2)Java中的==和equals

Java中的==和equals   1.如果比较对象是值变量:只用==   2.如果比较对象是引用型变量:      ==:比较两个引用是不是指向同一个对象实例.      equals:       ...

Java中String 的equals 和==详解

一.Java中数据存储区域包括: 1.寄存器:最快的存储区,由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new ...

java中的==、equals()、hashCode()源码分析(转载)

在java编程或者面试中经常会遇到 == .equals()的比较.自己看了看源码,结合实际的编程总结一下. 1. ==  java中的==是比较两个对象在JVM中的地址.比较好理解.看下面的代码: ...

深入分析Java中的 == 和equals

关于Java中的 == 和equals的解释请看这位博主的文章 :http://www.cnblogs.com/dolphin0520/p/3592500.html 以下是我对这篇文章的一些扩展. 对 ...

java中的==、equals()、hashCode()

java中的==.equals().hashCode()源码分析 在java编程或者面试中经常会遇到 == .equals()的比较.自己看了看源码,结合实际的编程总结一下. 1. ==  java中 ...

Java中的ReentrantLock和synchronized两种锁定机制的对比

问题:多个访问线程将需要写入到文件中的数据先保存到一个队列里面,然后由专门的 写出线程负责从队列中取出数据并写入到文件中. http://blog.csdn.net/top_code/article/ ...

随机推荐

gRPC源码分析2-Server的建立

gRPC中,Server.Client共享的Class不是很多,所以我们可以单独的分别讲解Server和Client的源码. 通过第一篇,我们知道对于gRPC来说,建立Server是非常简单的,还记得 ...

爱上MVC~图表的使用Chart

回到目录 图表在一个系统中是必须的,MVC架构把它当然是一个扩展集成了进来,通过简单的几句话就可以生成一个风格多样的图表,这给报表的开发带来了很大的方便,大叔的项目中也做了一个测试,把主要的代码贴出来 ...

SQL 编辑

局部变量: DECLARE @variable_name Datatype Variable_naem为局部变量的名称,Datatype为数据名称. 例如: DECLARE @name varchar ...

the Meta-Object Compiler (moc)

the Meta-Object Compiler (moc) 元对象编译器是处理Qt的C++扩展的程序. moc工具读取C++头文件,如果它找到一个或者多个类声明包含Q_OBJECT宏.它生为那些类成 ...

Unbutu14.04 启用 root 并禁用guest

系统环境: Ubuntu14.04 x64 问题描述: Ubuntu14.04的64位系统默认禁用 root 账号登录 解决方式:            1. 为root设置密码 sudo passw ...

前端技术之_CSS详解第六天--完结

前端技术之_CSS详解第六天--完结 一.复习第五天的知识 a标签的伪类4个: a:link 没有被点击过的链接 a:visited 访问过的链接 a:hover 悬停 a:active 按下鼠标不松 ...

利用box-shadow属性实现页面层叠效果

效果图如下 box-shadow的语法 代码展示 .footer { color: #777; padding: 10px 15px; height: 20px; text-align: center ...

Redis客户端——Jedis的使用

本文介绍基于Java语言的Redis客户端——Jedis的使用,包括Jedis简介.获取Jedis.Jedis直连.Jedis连接池以及二者的对比的选择. Jedis简介 Jedis 是 Redis  ...

图片支持get请求访问

BufferedInputStream in = new BufferedInputStream(doc2.getContent());//读取文件到输入流 OutputStream out = re ...

mybatis:延迟加载时不要在get/set方法上面添加final关键字(原创)

1.mybatis-config.xml: <?xml version="1.0" encoding="UTF-8"?> ..