一.Java 中 == 比较
在java中,’=='运用在基本数据类型的时候,比较的是对象的内存地址,如下:
public class Equals {
public static void main(String[] args) {
String s3= new String("zhang");
String s4= new String("zhang");
System.out.println(s3==s4); //false
}
}
从上面可以看出,尽管 a 与 b 对象的值相同,但是在内存中的地址是不同的,即两个对象说S3,S4是不一样的
再看下面的一组对比比较:如下
public class Equals {
public static void main(String[] args) {
String s1="zhang";
String s2="zhang";
String s3= new String("zhang");
String s4= new String("zhang");
//'=='运用在基本数据类型的时候,比较的是对象的内存地址
System.out.println(s1==s2); //true
System.out.println(s3==s4); //false
}
}
如上S1和 S2 其实都是都是指向 “zhang”这个常量
二.Java 中 equals比较
equals操作表示堆中的内容是否相同:如下
public class Equals {
public static void main(String[] args) {
String s1="zhang";
String s2="zhang";
String s3= new String("zhang");
String s4= new String("zhang");
//'=='运用在基本数据类型的时候,比较的是对象的内存地址
System.out.println(s1==s2); //true
System.out.println(s3==s4); //false
//equals一般比较字符串是否相等,比较的是堆中的内容是否相同
System.out.println(s1==s3); //false
System.out.println(s1.equals(s3)); //true
System.out.println(s3.equals(s1)); //true
System.out.println(s3.equals(s4)); //true
}
}
三.contains
equals只能判断两个变量的值是否相等,contains常用与集合中判断某个对象是否含有这个元素,如下:
public class Contains {
public static void main(String[] args) {
String str="/zhang/index.text";
//contais比较时,只要局部相等
if(str.contains("/zhang")){
System.out.println("true"); //返回true
}else{
System.out.println("false");
}
}
}
当用list去判断的时候,不是局部相等,而是list的其中一项要和字符串全部相等,也就是所谓的必须是两个字符串相等
public class Contains2 {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("/zhang/index.txt");
list.add("/zhang/index2.txt");
if(list.contains("/zhang")){
System.out.println("true");
}else{
System.out.println("false"); //返回false
}
}
}
我们为了清晰些可以把list集合循环遍历,用每一个字符串去做比较,和 开始用两个字符串局部的比较是一样的,如下:
public class Contains2 {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("/zhang/index.txt");
list.add("/zhang/index2.txt");
for (String str : list) {
if(str.contains("/zhang")){
System.out.println("true"); //返回true
}else{
System.out.println("false");
}
}
}
}
嗯,参考https://blog.csdn.net/qiziyu520/article/details/54289482,自己对这块知识 整理,以后可以多来看下