Java学习记录|字符串的比较
一般情况下: 基本类型使用==做比较 引用类型使用equals做比较 但在字符串的比较方面有一些特殊之处 1. == 比较基本类型时 是比较存储的值是否一样 System . out . println ( 9 == 10 ) ; //false 比较引用类型时(以字符串为例) 和内存存储区域有关 基本类型:存储的是值,存储在栈中,比较的是值 引用类型:存储的是数据和引用,==比较的是引用 System . out . println ( "www.baidu.com" == "www.baidu.com" ) ; //true 两个字符串比较的时候,比较的是内存地址。两个字符串都是常量,在内存区域的静态区中。由于是一样的字符串,所以在静态区只保存一份。所以true。当两个字符串不一样时,在静态区中才会申请一份新的内存存储不一样的字符串 加入变量s2,s3,s4 String s2 = new String ( "www.baidu.com" ) ; String s3 = "www.baidu.com" ; String s4 = "www.baidu.com" ; System . out . println ( s2 == s3 ) ; //false System . out . println ( s3 == s4 ) ; //取得的两个字符串内存地址是一样的true