简析java中string的比较

原创 2016年08月29日 20:55:56

简析一下java中的String的比较

虽然这很简单,但还是让不少新手困惑。

说明一下 ==和equals 的区别。

==比较的是引用,就是地址,而equals是比较值,比较值的话,是值相同就返回true,而引用的话,值相同不一定相等,只有引用的地址相同才会相等,但是引用相同,值一定相等。

下面举例说明一下

String str= "hello";
String str1 ="hello";
Boolean b1= str==str1?true:false;
Boolean b2=srt.equals(str1)?true:false;
System.out.println(b1+ " "+b2);
结果是true ,true。

说明一下java声明String的机制,在声明过程中,没有使用new关键字的话,它会在常量池中去找,是否有hello这个字符串,如果有,那么那就会指向这个引用,也就是说不会创建新的常量,如果没找到的话才会创建一个新的常量hello ,在这里第二个字符串没有使用new关键字,且有hello字符串常量的存在,所以str1的引用和str相同

String str= "hello";
String str1 =new String("hello");
Boolean b1= str==str1?true:false;
Boolean b2=srt.equals(str1)?true:false;
System.out.println(b1+ " "+b2);



结果是false ,true

使用new关键字的话,它不管常量池中是否有hello这个字符串,会直接声明一个新的引用,分配新的地址。所以在这里str==str1返回false

本人才疏学浅,如果疑问或有不足之处都欢迎沟通。 


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java 值传递与地址传递(引用)的区别

JAVA传递参数有两种方式:值传递和引用传递 值传递是传递数据:如基本数据类型都是值传递 引用传递是把形参和实参的指针指向了堆中的同一对象,对象的引用和数组的引用。 注意: 实参,Java的基...

简析java.lang.String类

1、得到字符串对象的有关信息(1)通过调用length()方法得到String的长度.例:String str="This is a String"; int len =str.length();(2...

C++字符串类string简析

java web 简析-- TCP协议概要

  • 2015-10-20 09:51
  • 2.39MB
  • 下载

java Executors源码简析

package a160229; import java.util.Random; import java.util.concurrent.ExecutorService; import java....

C++与Java混合编程简析

  • 2012-03-05 13:44
  • 515KB
  • 下载

JAVA几个常见错误简析

  • 2007-06-04 09:23
  • 45KB
  • 下载

Json技术简析(Java)

Json简介首先给出Json的官网:www.json.org,英语不好的可以转换成中文格式。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅...

java程序设计答案简析

  • 2015-09-06 08:03
  • 33KB
  • 下载

简析JAVA的XML编程

  • 2009-07-31 15:54
  • 50KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)