字符串的常量池与字符串的比较相关方法
package demox.demopro; /* 字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量; 对于基本类型来说,==是进行数值的比较。 对于引用类型来说,=-是进行【地址值】的比较。 */ public class Demo2StringPool { public static void main(String[] args) { String st1 ="abc"; String st2 ="abc"; char[] charArray ={'a','b','c'}; String st3 = new String(charArray); System.out.println(st1 == st2); System.out.println(st1 == st3); System.out.println(st2 == st3); } }
注意对于引用类型来说,==进行的是地址值的比较
双引号直接写的字符串在常量池当中new的不在池当中
package demox.demopro; /* ==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用两个方法: public boolean equals(Object obj)、参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true否则返回fals 备注:任何对象都能用object进行接收。 注意事项; 1.任何对象都能用object进行接收。 2. equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。3如果比较双方一个常量一个变量,推荐把常量字符串写在前面。 推荐:"abc".equals(str)不推荐:str.equals( "abc" */ public class Demo02_Random { public static void main(String[] args) { String str1 ="Hello"; String str2 = "Hello"; char[] charArray ={'H','e','l','l','o'}; String str3 = new String(charArray); System.out.println(str1.equals(str2)); System.out.println(str2.equals(str3)); System.out.println(str3.equals("Hello ")); System.out.println("Hello".equals(str1)); String str4="Hello"; System.out.println(str1.equals(str4)); System.out.println("********************"); String str5 =null; System.out.println("abc".equals(str5)); System.out.println(str5.equals("abc")); String strA ="JAvA"; String strB = "JAVA"; System.out.println(strA.equals(strB)); System.out.println(strA.equalsIgnoreCase("abcyi123")); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)