`
yanfaguanli
  • 浏览: 659697 次
文章分类
社区版块
存档分类
最新评论

java String对象比较之equals和==的区别

 
阅读更多

简单来说,equals比较的是值,而==成立的话要求两个String是同一个对象。

String s1 = "bluecloudmatrix";
String s2 = "bluecloudmatrix";
if(s1 == s2)
	System.out.println("s1==s2");
else
	System.out.println("s1!=s2");

结果是s1==s2,表面上s1和s2是两个对象,实际上s1创建完对象会将之放入字符串缓冲池,当s2创建字符串时,会首先在缓冲池中找相同值的对象,如果存在,则s2直接指向这个对象,所以实际上s1和s2指向的是同一个对象。

但是如果是String s2 = new String("bluecloudmatrix"),则输出的是s1!=s2。

分享到:
评论

相关推荐

    java中==和equals的区别

    前言 对于开发的程序员小伙伴,大家肯定对于==和equals不陌生,而且会经常用到他...String对象重写了 equals,比较的是变量值 从上面我们笼统的来说明了一下两者的不同,那么接下来我们看看具体的区分 对象类型的比较

    ==和equals方法究竟有什么区别

    ==和equals方法究竟有什么区别?  == 操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。  ...

    java 面对对象编程.pdf.zip

    面向对象基础 面向对象和面向过程的区别 成员变量与局部变量的区别 ...String#equals() 和 Object#equals() 有何区别? 字符串常量池的作用了解吗? String s1 = new String("abc");这句话创建了几个

    Java中==与equals的区别小结

    主要介绍了Java中==与equals的区别小结,本文总结结论:== 与 equals()比较的内容是不同的,equals()方式是String类中的方法,它用于比较两个对象引用所指的内容是否相等,而 == 比较的是两个对象引用的地址是否相等,...

    String a="hello" String b="hello" a==b 返回true的问题分析

    //在java中有一个常量池,当创建String 类型的引用变量给它赋值时,java会到它的常量池中找"hello world"是不是在常量池中已存在。如果已经存在则返回这个常量池中的"hello world"的地址(在java中叫引用)给变量a 。...

    java对象比较器

    System.err.println("未找到合适的比较器"); return 1; } } public int compare(String o1, String o2) { String s1 = (String) o1; String s2 = (String) o2; int len1 = s1.length(); int len2 = s2....

    java解析Properties配置文件为对象Bean

    if(typeName.equals("java.lang.String")) { field.set(obj, value); }else if(typeName.equals("int")) { field.setInt(obj, Integer.parseInt(value)); }else if(typeName.equals("float"))...

    跟我学Java-day13-String和StringBuilder.pdf

    public boolean equals(String s) 比较两个字符串内容是否相同、区分大小写 public class StringDemo02 { public static void main(String[] args) { //构造方法的方式得到对象 char[] chs = {'a', 'b', 'c'}; ...

    Java面试经典题,对JAVA面试很有帮助

    10.String、String StringBuffer 和 StringBuilder 的区别是什 么? 11.ArrayList和linkedList的区别 12.HashMap和HashTable的区别 13.Collection包结构,与Collections的区别 14.Java的四种引用,强弱软虚 15.泛型...

    java面试大全视频版

    Java面试题07.==和equals的区别 Java面试题08.String Java面试题09.讲一下java中的集合 Java面试题10.ArrayList 和LinkedList的区别 Java面试题11.HashMap和HashTable的区别 Java面试题12.实现一个拷贝文件的工具类...

    Java问题宝典2012版

    这两行代码执行后,原始的String对象中的内容到底变了没有? 24 32、是否可以继承String类? 25 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 25 34、String 和StringBuffer的...

    实验05 Java集合.doc

    注意:因为Person类是自定义类,需要重写hashCode()方法和equals()方法,并规定只有姓名和身份证号都相等,则对象相等。 其中计算哈希码的算法:(31 + ((name == null) ? 0 : name.hashCode()))*31 + id (注:...

    Java初学者都必须理解的六大问题

     上面的结论还基于这样一个事实:对于字符串常量,如果内容相同,Java认为它们代表同一个String对象。而用关键字new调用构造器,总是会创建一个新的对象,无论内容是否相同。  至于为什么要把String类设计成不可...

    JAVA面向对象详细资料

    Java面向对象 1 1 学习方法与要求 1 2 面向对象语言与面向过程语言的区别 7 3 面向对象?什么对象? 8 4 什么是类? 9 5 如何创建一个类Class? 10 6 如何使用类创建对象 10 7 引用与实例 11 8 实例属性与实例方法 ...

    Java类的修饰符、访问控制符

    实验目的 理解掌握Java类修饰符、访问控制符等;理解熟悉String类的equals方法和= =运算符;进一步熟悉面向对象基本概念;熟悉Java中对象声明、创建、访问、参数传值等基本语法;

    Java中String类和IO流——学习小结

    String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。String类对象创建后是一个常量,有final修饰,不能被修改。字符串重新赋值不是修改,而是生成了一个新的字符串,原先的字符串...

    java六大必须理解的问题-来自网络少许有误(非常适合初学者).doc

    问题二:"=="和equals方法究竟有什么区别? ==操作符专门用来比较变量的值是否相等。比较好理解的一点是: int a=10; int b=10; 则a==b将是true。 但不好理解的地方是: String a=new String("foo"); String...

    java类与对象基础实验(二)

    import java.util.*; public class 解析身份证号码的生日 { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); System.out.println("请输入你的身份证号码:"); while...

    ==和equals() 的比较

    ==和 equals ()都是用于相等型判断的操作符 == 操作符用来判断两个引用是否指的同一个对象,或两个简单类型的值是否相等 即: [ == 比较值类型数据,比较的是值, 而引用类型对象比较的是地址] equals() 方法用来判断...

    Java中String常见问题

    1.字符串比较==和equals  ==:比较的是对象,判断两个引用的是否为同一内存地址(物理对象)  equals:比较的是值  2.通过空白字符拆封字符串  str.spilt("\s+")  以上支持:空白字符""、换行" "、tab制表符...

Global site tag (gtag.js) - Google Analytics