728x90
기본 타입과 참조타입
기본타입
· 정수, 실수, 논리 / (int, double, boolean)
· 변수에 값이 저장됩니다.
참조타입
· String, 배열, 클래스, 인터페이스, 열거
· 변수에 주소값이 저장됩니다.
메모리 공간
1) 메소드 영역
· 상수, 정적필드, 생성자, 메소드
2) 힙 영역
· 새롭게 생성되는 객체 (객체, 배열)
3) 스택 영역
· 지역단위, 연산에 임시 사용합니다.
비교 연사자
기본타입 : == 값을 비교합니다.
참조타입 : == 주소를 비교합니다.
String의 비교
== 가 아닌 .equals("문자열") 로 사용합니다.
초기값
참조타입 String은 초기값으로 null을 사용할 수 있습니다..
null : 주소가 없다. 참조하지 않고 있다.
참고 예시 1
String s1 = ""; // 공백인 문자열을 가리키고 있는 중입니다.
String s2; // 아무것도 없는 상태(선언만 한 상태)
String s3 = null; // 현재 아무것도 참조하고 있지 않고 있습니다.
System.out.println(s1); //
//System.out.println(s2); // 값이 없어 출력할 수 없습니다.
System.out.println(s3); // null
참고 예시2
String str1 = "자바";
Scanner scan = new Scanner(System.in); // new 새로운 공간 생성
String str2 = scan.nextLine(); // 입력받기 "자바"
System.out.println(str1 == str2); // 번지 주소 비교 false 주소값이 서로 다름
System.out.println(str1.equals(str2)); // 값 문자열 비교 true "자바" "자바"
String str1 = "자바";
String str2 = scan.nextLine(); // 입력받기 "자바"
String str2 = new String("자바"); // new 새로운 공간을 할당하면서 생성
System.out.println(str1 == str2); // 번지 주소 비교 false 주소가 서로 다름
System.out.println(str1.equals(str2)); // 값 문자열 비교 true "자바" "자바" 서로 같음