字符串的常量池和比较比较相关方法
字符串的常量池
程序当中直接写上双引号字符串,就在字符串常量池中。
对于基本类型来说,==是进行数值的比较。
对于引用类型来说,==是进行【地址值】的比较。
String s1 = "abc"; String s2 = "abc"; char[] charArray = {'a','b','c'}; String s3 = new String(charArray); System.out.println(s1==s2); System.out.println(s1==s3); System.out.println(s2==s3);
1.对于引用类型来说,==进行的是地址值的比较
2.双引号直接写的字符串在常量池当中,new的不在池当中
比较比较相关方法
equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false。
注意:
1.任何对象都能用Object进行接收。
2.equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。
3.如果比较双方一个常量一个变量,推荐把常量字符串写在前面。
推荐,“abc”.equals(str) 不推荐:str.equals("abc");
equalsIgnoreCase(String str):忽略大小写,进行内容比较。(只有英文字母区分大小写,其他都不区分大小写)
String s1 = "abc"; String s2 = "abc"; char[] charArray = {'a','b','c','l','c'}; String s3 = new String(charArray); System.out.println(s1.equals(s2)); System.out.println(s2.equals(s3)); System.out.println(s3.equals("anclc")); System.out.println("anc".equals(s1)); String str4 = "hello"; System.out.println(s1.equals(str4)); System.out.println("============="); String s5 = "abc"; System.out.println("abc".equals(s5));//推荐 System.out.println("==============="); String s6 = "Java"; String s7 = "java"; //区分大小写 System.out.println(s6.equals(s7)); //忽略大小写 System.out.println(s6.equalsIgnoreCase(s7));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix