简析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之 string 类型比大小

String的compareTo其实就是依次比较两个字符串ASC码。如果两个字符的ASC码相等则继续后续比较,否则直接返回两个ASC的差值。如果两个字符串完全一样,则返回0。来看一下代码。public...
  • why850901938
  • why850901938
  • 2016年04月03日 17:53
  • 2800

java中的String为什么可以使用==比较字符串内容?

java中的String为什么可以使用==比较字符串内容? 一句话概括: java中的String是final类,final类是共享数据的,而java中==比较的是内存地址,而final类的S...
  • zslllj
  • zslllj
  • 2013年12月29日 22:03
  • 2138

【Java】利用String的compareTo比较两个时期字符串

在《【Java】比对两个以字符串形式表示的时期是否相差超过1天》(点击打开链接)曾经介绍过,如果利用字符串的截取来比较两个在数据库中取出来,被特定格式化的日期。然而,这具有一定的局限性,最大的缺点出在...
  • yongh701
  • yongh701
  • 2015年11月12日 09:39
  • 3820

Java中比较器小结

比较器指的是集合存储的元素的特性,如果元素是可比较的则可以进行相应的排序,否则不行。但是在Java中有Comparable接口和Comparator接口,具体有什么区别呢? 对于Comparable接...
  • u012050154
  • u012050154
  • 2016年07月28日 12:02
  • 1840

String比较为什么要用equals?用==的问题

很简单的问题,记录一下 下面的程序很简单吧?你能保证你说的结论都是正确的吗?运行验证下你的猜测。 public class T{ public static void main(String[] a...
  • look_dev
  • look_dev
  • 2016年10月22日 17:31
  • 555

java String对象中‘==’,equals与compareTo函数的使用和区别

java String类中可能最让初学者容易混淆的li
  • xiongyangg
  • xiongyangg
  • 2014年10月10日 21:31
  • 1848

String使用equals方法和==分别比较的是什么?(转)

equals方法和==的区别   首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用。这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = "...
  • wangdong20
  • wangdong20
  • 2013年02月02日 23:29
  • 29422

String的几种比较方法耗时对比

本文测试的字符串比较方法有: string.Compare : 文档定义:比较两个字符串并返回其相对排序顺序的指示。 Compare会通过传递进来的文化信息来调用对应的比较。 文化信息Cult...
  • LI5852258
  • LI5852258
  • 2017年04月21日 16:09
  • 2167

java String 两种不同的赋值 比较

首先明确一点,String是一个类。下面我们主要讨论两个问题   a) String类的对象的两种赋值方式  b) 为什么String类的对象可以直接赋值 a) 1 类似...
  • imxiangzi
  • imxiangzi
  • 2016年05月14日 15:11
  • 505

C风格字符串和C++string类对比 使用实例

一.C风格字符串 ◆ 1、字符串是用字符型数组存储的,字符串要求其尾部以’\0’作为结束标志。如:     char string[ ]=”C++ programming language”; ...
  • sdnu111111111
  • sdnu111111111
  • 2014年07月28日 14:50
  • 2109
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简析java中string的比较
举报原因:
原因补充:

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