ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 17. String 클래스
    개발자 수업/Java 2021. 10. 13. 22:11

    1. String
        1) 선언
            - String str1 = new String("abc");
            - String str2 = "abc";
            - 힙 메모리에 인스턴스로 생성되는 경우(1) --> 생성될 때 마다 다른 주소 값 가짐
              상수 풀(constant pool)에 있는 주소를 참조하는 두 가지 방법이 있음(2) --> 모두 같은 주소 값 가짐
        2) 한 번 생성된 String 객체는 불변함 (immutable)
        3) String을 연결하면 기존의 String에 연결되는 것이 아닌 새로운 문자열이 생성됨

    public class StringTest {
    
    	public static void main(String[] args) {
    		String str1 = new String("abc");
    		String str2 = new String("abc");
    		System.out.println(str1 == str2);	// false
    		
    		String str3 = "abc";
    		String str4 = "abc";
    		System.out.println(str3 == str4);	// true
    		System.out.println(str2 == str3);	// false
    		
    	}
    }
    public class StringTest02 {
    
    	public static void main(String[] args) {
    		String java = new String("java");
    		String kotlin = new String("kotlin");
    		System.out.println(System.identityHashCode(java));	// 961419791
    		
    		java = java.concat(kotlin);
    		System.out.println(java);							// javakotlin
    		System.out.println(System.identityHashCode(java));	// 665188480
    		
    	}
    }



    2. StringBuilder, StringBuffer
        1) 내부적으로 가변적인 char[]를 멤버 변수로 가짐
        2) 문자열을 여러 번 연결하거나 변경할 때 사용하면 유용함
        3) 새로운 인스턴스를 생성하지 않고 char[]를 변경함
        4) StringBuffer는 멀티스레드 프로그래밍에서 동기화를 보장
        5) 단일스레드 프로그램에서는 StringBuilder 사용

    public class StringBuilderTest {
    
    	public static void main(String[] args) {
    		StringBuilder builder = new StringBuilder("java");
    		System.out.println(builder);							// java
    		System.out.println(System.identityHashCode(builder));	// 961419791
    		
    		builder.append("kotlin");
    		System.out.println(builder);							// javakotlin
    		System.out.println(System.identityHashCode(builder));	// 961419791
    		
    	}
    }



    3. text block 사용하기 (java 13)
        """ """

    public class StringTextBlockTest {
    	public static void main(String[] args) {
    		String textBlocks = """
    				자 이건 수업중에 하는 파일인데 너무 졸리고 집중이 안되고 
    				말을 너무 못하고 횡설수설 지리지만 
    				어떻게 듣고있는 내가 제일 멋지다 짱짱 
    				아무거나 넣으래서 아무거나 쓰는중
    				""";
    		System.out.println(textBlocks);
    		System.out.println(getBlockOfHtml());
    	}
    	
    	public static String getBlockOfHtml() {
    		return """
    			.another_category_color_red, .another_category_color_red h4 { border-color: #F6D4D3 !important;  }
    			.another_category_color_red * { color: #E86869 !important; }
    			.another_category_color_red th a.current{border-color:#E86869 !important;}
    			.another_category_color_red h4, .another_category_color_red h4 a { color: #ED0908 !important; }
    				""";
    	}
    }

    '개발자 수업 > Java' 카테고리의 다른 글

    19. Wrapper 클래스  (0) 2021.10.14
    18. Class 클래스  (0) 2021.10.14
    16. Object 클래스  (0) 2021.10.13
    과제2 - CarTest  (0) 2021.10.13
    15. 추상 클래스와 인터페이스  (0) 2021.10.13

    댓글