定数プールのデータ保存の特徴


package com.bwf.str;

//           
public class Demo4 {

	public static void main(String[] args) {
		
//		String s1 = "ab";
//		String s2 = "ab";
//		String s3 = "a" + "b";
//		
//		System.out.println(s1 == s2);	// true
//		System.out.println(s2 == s3);	// true
		
		/*
		 *                        
		 * s1     s2   
		 *  s3          ,                
		 *    s3     = "ab"
		 *    s1 == s2 == s3
		 */
		
//		String s1 = "hello";
//		String s2 = new String("hello");
//		String s3 = "he" + new String("llo");
//		
//		System.out.println(s1 == s2);	// false
//		System.out.println(s1 == s3);	// false
		
		/*
		 *  new           
		 * "hello"         
		 *   s1   s2         ,    
		 * 
		 * s3             ,             
		 *            ,   s1 != s3
		 */
		
//		String a = "sfalse";
//		String b = "s" + false;
//		System.out.println(a == b);
		
		/*
		 * "s1"       ,
		 *  b = "s"+1         ,              
		 *    a == b
		 * 
		 */
		
		
//		String s1 = "ab";
//		String s2 = "aab";
//		String s3 =  "a" + s1;
//		System.out.println(s2 == s3);
		
		/*
		 *    s1   s2     
		 * s3                ,             
		 *    s2 != s3
		 */
		
//		final String s1 = "ab";
//		String s2 = "aab";
//		String s3 =  "a" + s1;
//		System.out.println(s2 == s3);
		
		/*
		 *  final   s1        
		 *               
		 * s3                      
		 *               
		 *    s2   s3         
		 */
		
		
//		String s1 = "abc";
//		String s2 = getAbc();
//		System.out.println(s1 == s2);	// true
		
		
		
		String s1 = "abc";
		String s2 = getAbc2();
		System.out.println(s1 == s2);
		
	}

	private static String getAbc() {
		return "abc";
	}
	
	private static String getAbc2() {
		String s = new String("ab") + "c";
		return s;
	}
	
	
	
	
	
}