网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1038|回复: 0
打印 上一主题 下一主题

Java中String字符串的比较

[复制链接]

97

主题

98

帖子

447

积分

版主

Rank: 7Rank: 7Rank: 7

积分
447
跳转到指定楼层
楼主
发表于 2020-5-12 17:15:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、String s1 = new String("hs")和String s2 = "hs"的区别
前者会创建两个对象,后者只创建一个对象。

2、==和equals的区别
==比较的是引用类型的地址值是否相同,equals则是比较引用的内容是否相同

3、String str=null 和String str=""的区别?
String str = null 不分配内存空间, string str = "" 分配内存空间,空间大小是空字符串的大小

4、字符串如果是变量相加,先分配内存,在拼接内容;
如果是常量相加,先相加,然后在常量池中找,如果有就直接返回常量池,否则创建新的对象。
通过下列代码输出结果,理解第四点:
String s1 = new String("hello");
String s2 = "hello";
System.out.println(s1 == s2);// false
System.out.println(s1.equals(s2));// true
String s3="hello";
String s4="world";
String s5="helloworld" ;
System.out.println(s5==s3+s4);//false  
System.out.println(s5.equals(s3+s4));//true
System.out.println(s5=="hello"+"world");//true
System.out.println(s5.equals("hello"+"world"));//true

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-12-22 10:43 , Processed in 0.032178 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表