Java基础(三)Java中‘==’与euqal()和contains整理

一.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,自己对这块知识 整理,以后可以多来看下

猜你喜欢

转载自blog.csdn.net/xiaoge613/article/details/83017443