网站首页 > java教程 正文
Java中字符串比较特殊,它不是基本类型,直接使用 == 进行比较是否相等,大多时候不能达到预期结果,正确的方式是使用.equals()方法进行比较,接下来看代码演示,来理解:Java中如何比较字符串!
// 使用 == 符合预期的情况,原因:指向相同的内存地址
boolean bool = "val" == "val" ;
System.out.println(bool); // 输出:true
// 使用 == 符合预期的情况,原因:指向相同的内存地址
boolean bool = "val" == "v"+"al" ;
System.out.println(bool); // 输出:true
// 使用 == 不符合预期的情况,看着相同,但它们并不同,原因:指向不同的内存地址
boolean bool = new String("val") == "val";
System.out.println(bool); // 输出:false
// 使用 == 不符合预期的情况,看着相同,但它们并不同,原因:指向不同的内存地址
boolean bool = new String("val") == new String("val")
System.out.println(bool); // 输出:false
// 这个两值是相同的,原因:比较具体的值,值相同
boolean bool = new String("val").equals("val");
System.out.println(bool); // 输出:true
// 其他相同的情况
String one = "HELLO";
String two = "HELLO";
String three = new String("HELLO");
String four = "hello";
one.equals(two); // true ,原因:比较具体的值,值相同
one.equals(three); // true ,原因:比较具体的值,值相同
one.equalsIgnoreCase(four); // true ,原因:忽略大小写,比较具体的值,值相同
还不明白的欢迎留言交流!
- 上一篇: 怎么java编程
- 下一篇: 如何在JAVA中比较字符串(string)?
猜你喜欢
- 2024-11-27 正确理解和使用JAVA中的字符串常量池
- 2024-11-27 面试Java岗 Integer和String必问知识点,你必须精通
- 2024-11-27 JAVA基础&String&StringBuffered&StringBuilder
- 2024-11-27 Java 17 I/O StringWriter 篇
- 2024-11-27 高端面试必备:一个Java对象占用多大内存?
- 2024-11-27 Java基础类String学习分析
- 2024-11-27 懵了!面试官问我:String 长度有限制吗?是多少?
- 2024-11-27 扒开外衣仔细分析:String为什么不可变
- 2024-11-27 对象的内存布局,怎样确定对象的大小
- 2024-11-27 「Java技术探索」带你进入String类的易错点和底层本质分析
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)