java String对象比较之equals和==的区别
2014-04-06 11:40
483 查看
简单来说,equals比较的是值,而==成立的话要求两个String是同一个对象。
结果是s1==s2,表面上s1和s2是两个对象,实际上s1创建完对象会将之放入字符串缓冲池,当s2创建字符串时,会首先在缓冲池中找相同值的对象,如果存在,则s2直接指向这个对象,所以实际上s1和s2指向的是同一个对象。
但是如果是String s2 = new String("bluecloudmatrix"),则输出的是s1!=s2。
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动态代理一------动态类Proxy的使用
- JAVA读取Excel的实现(利用jxl.jar读取excel)
- Java读取Mdb初试
- win8 下 eclipse+android 开发环境配置带图详细教程
- JUULUU JAVA开源新闻系统KgcmsV5.0.1发布
- java的堆,栈,静态代码区 详解 String原理
- java基础06
- java abstract类 和 interface
- (11)Java笔记11之继承
- JUULUU JAVA开源新闻系统KgcmsV5.0.1发布
- 更改Eclipse里的Classpath Variables M2_REPO
- eclipse4.3 解决没有check out as maven project
- struts-convention零配置--约定大于配置
- myeclipse中配置xsi:schemaLocation路径,实现xml文件自动提示
- java8 Lambda表达式
- java基础05
- Spring事务AOP
- Eclipse离线安装ADT插件
- java基础实现简单的用户登陆功能
- Struts2中的ValueStack