String  타입 


자바는 문자열을 String 변수에 저장한다.

 

String 변수;

변수 = "문자열";

 

▽ 변수 선언과 동시에 문자열 저장하기 

String 변수 = "문자열";


▽자바는 문자열 리터럴이 동일 하다면 String 객체를 공유하도록 되어있다

 다음과 같이 name1과 name2변수가 동일한 문자열을 사용하면 name1과 name2는 동일한 String객체를 참조하게 된다.

String name1 = "유정뱅이";

String name2 = "유정뱅이";

name1 == name2 의 연산 결과는 true가 나온다.


▽new연산자를 사용한 String 객체 생성

 

String name1 = new String("유정뱅이");

String name2 = new String("유정뱅이");

name1 == name2 의 연산 결과는 false가 나온다. ( == 연산자는 변수에 저장된 객체 번지가 동일한지를 검사한다.)

 

boolean result = str1.equals(str2);  //str1 = 원본 문자열 , str2 = 비교 문자열 

 

String 객체이건 다른 String 객체이건 상관없이 문자열만을 비교한때에는 String 객체의 equals()메소드를 사용해야한다.

equals()메소드는 원본 문자열과 매개값으롤 주어진 비교 문자열이 동일한지 비교한 후 true 또는 false를 리턴한다.

 

String name1 = null;

String 변수는 참조 타입이므로 초기값으로 null을 대입할 수 있다. null은 String변수가 참조하는 String객체가 없다는 뜻이다.


String name1 = "유정뱅이";

 name1 = null;

name1변수가 String객체를 참조하였으나, null을 대입함으로써 더 이상 String객체를 참조하지 않도록 할 수도 있다.

참조를 잃은 String객체는 어떻게 될까?  JVM은 참조 되지 않은 객체를 쓰레기 취급하고 쓰레기 수집기(Gabage Collector)를 구동시켜 메모리에서 자동 제거한다.





'프로그래밍 > JAVA' 카테고리의 다른 글

[html,css,js]동적으로 테이블 만들기  (0) 2018.10.21
[JAVA] final  (1) 2018.08.20
[JAVA]상속-부모클래스, 자식클래스  (5) 2018.08.18
[JAVA]this 레퍼런스  (2) 2018.08.17
[JAVA]접근 지정자를 알아보자!  (2) 2018.08.17

+ Recent posts