프로그래밍 언어/자바
문자열1
dks_a
2022. 5. 8. 18:16
package pk10;
public class 문자열1 {
public static void main(String[] args) {
// 참조형 중 문자열 클래스 생성하기
//A) 무조건 새 공간 할당하기
String s1 = new String ("Hello");
String s2 = new String ("Hello");
// 좌변 String : 클래스명
// s1 : 스택에 저장되는 객체명
// new : 힙에 무조건 새로운 공간 할당받고 주소 반환
// 우변 String() : 생성자(), 클래스명과 동일
// Hello : 생성자 메소드의 입력매개변수
System.out.println("s1 = "+s1);
System.out.println("s2 = "+s2);
System.out.println("s1 == s2 " + (s1 == s2)); //false , 주소비교결과 서로 다른 공간
System.out.println();
//B) 가급적 메모리 공유하여 재활용하기
String s3 = "world";
String s4 = "world";
System.out.println("s3 = "+s3);
System.out.println("s4 = "+s4);
System.out.println("s3 == s4 " + (s3 == s4)); //true
//리터럴값을 이용하여 생성할 경우,
//힙에 world 문자열이 이미 있으면 새 공간을 할당하지않고 주소 공유(재활용)
/*
* 리터럴값이란?
* 프로그램에서 직접 표현한 값
* 소스 코드의 고정된 값을 대표하는 용어
* 종류로는 정수, 실수, 문자, 논리, 문자열 리터럴이 있다.
*/
}
}