Java 零碎知识点总结 (1)

Java 零碎知识点总结 (1)

  回顾大二学java时遇到过的知识点,抽空做个笔记,方便遗忘的时候回头学习。

	package 基础问题练习;
	
	public class 优先级1 {
    
    
	
	   public static void main(String[] args) {
    
    
	   
	        String s1 = "ABC";
	        String s2 = "ABC";
	        
	        System.out.println("s1 == s2 is:" + s1 == s2);
	        
	    }
	}

	结果:false

  原因:在 Java 中 + 操作法的优先级大于 ==,所以输出部分表达式等于 “s1 == s2 is:ABC” == “runoob”,该表达式计算结果为 false。

  如下图, System.out.println(“s1 == s2 is:” + s1 );和 System.out.println(“s1 == s2 is:” + s1 == s2); 的执行结果的比对:
在这里插入图片描述
在这里插入图片描述
  对同一对象的引用:

		public class 优先级 2{
    
    
	    public static void main(String[] args) {
    
    
	    
	        String s1 = "ABC";
	        String s2 = "ABC";  //  s1和s2是同一个字符串
	        
	        System.out.println(s1==s2);  //语句 1
	        System.out.println("s1 == s2 is:" + s1 == s2);  // 语句2 中“+”的级别优先于“==”,所以,这句相当于"s1 == s2 is:" == s2,即判断"s1 == s2 is:ABC"=="ABC",结果为false。
	        System.out.println("s1 == s2 is:" + (s1 == s2));  // 语句 3
	        //语句1和语句3实际上是一样的。
	    }
	}
结果:
	true
	false
	s1 == s2 is:true

  开辟新的对象:

		public class 优先级 2{
    
    
		public static void main(String[] args) {
    
    
		
		        String s1 = "ABC";
		        String s2 = new String("ABC");  // 新开辟一个对象,地址不同,所以对比是false。
		        
		        System.out.println(s1==s2);
		        System.out.println("s1 == s2 is:" + s1 == s2);
		        System.out.println("s1 == s2 is:" + (s1 == s2));
		        }
		}
结果:
	false
	false
	s1 == s2 is:false

  该处进一步的图文详解:
在这里插入图片描述

  基础数据的比对:

	public class 优先级3 {
    
    
	    public static void main(String[] args) {
    
    
	        int i = 10;
	        int k = new Integer(10);
	        int j = k;
	        System.out.println(i==j);
	        System.out.println(i==k);           //基本数据不受影响的。
	    }
	}
结果:
true
true

猜你喜欢

转载自blog.csdn.net/qq_43515862/article/details/115058049