JAVA chapter 05. 참조 타입. 5.1 데이터 타입 분류, 5.2 메모리 사용 영역, 5.3 참조 변수의 ==, != 연산, 5.4 null과 NullPointerException, 5.5 String 타입
JAVA/CONCEPT 2017. 11. 16. 21:03 |JAVA chapter 05. 참조 타입. 5.1. 데이터 타입 분류
5.1. 데이터 타입 분류
// 기본 타입은 byte, char, short, int, long, float, double, boolean을 이용해서 선언된 변수는 실제 값을 변수 안에 저장하지만,
// 참조 타입인 배열, 열거, 클래스, 인터페이스를 이용해서 선언된 변수는 메모리 번지를 값으로 갖는다.
번지를 통해 객체를 참조한다는 뜻에서 참조 타입이라고 부른다.
// 변수가 스택 영역에 생성되고, 객체는 힙 영역에 생성된다
5.2 메모리 사용 영역
5.3 참조 변수의 ==, != 연산
5.4 null과 NullPointerException
// 참조 타입 변수를 잘못 사용하면 발생한다
5.5 String 타입
// == 연산자는 변수에 저장된 객체 번지가 동일한지를 검사한다
// equals() 메소드는 문자열만을 비교한다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package sec05.exam01_string_equals; public class StringEqualsExample { public static void main(String[] args) { String strVar1 = "신민철"; String strVar2 = "신민철"; if(strVar1 == strVar2) { System.out.println("strVar1과 strVar2는 참조가 같음"); } else { System.out.println("strVar1과 strVar2는 참조가 다름"); } if(strVar1.equals(strVar2)) { System.out.println("strVar1과 strVar2는 문자열이 같음"); } String strVar3 = new String("신민철"); String strVar4 = new String("신민철"); if(strVar3 == strVar4) { System.out.println("strVar3과 strVar4는 참조가 같음"); } else { System.out.println("strVar3과 strVar4는 참조가 다름"); } if(strVar3.equals(strVar4)) { System.out.println("strVar3과 strVar4는 문자열이 같음"); } } } | cs |
// String 변수는 참조 타입이므로 초기값으로 null을 대입할 수 있다.
// null은 String 변수가 참조하는 String 객체가 없다는 뜻이다.
ex)
String hobby = null;
// 다음 코드는 hobby 변수가 String 객체를 참조하였으나, null을 대입함으로써 더 이상 String 객체를 참조하지 않도록 할 수 있다.
// 참조를 잃는 String 객체는 JVM가 쓰레기 객체로 취급하고 쓰레기 수집기를 구동시켜 메모리에서 자동 제거한다.
ex)
String hobby = "여행";
hobby = null;
'JAVA > CONCEPT' 카테고리의 다른 글
JAVA chapter 06. 클래스. 6.1 객체 지향 프로그래밍 (0) | 2017.11.17 |
---|---|
JAVA chapter 05. 참조 타입. 5.6 배열타입 5.7 열거 타입 (0) | 2017.11.16 |
JAVA chapter 04. 조건문과 반복문. 4.1 코드 실행 흐름제어. 4.2 조건문 (if문, switch문) (0) | 2017.11.16 |
JAVA chapter 03. 연산자. 3.1 연산자와 연산식. 3.2 연산의 방향과 우선순위. 3.3 단항 연산자. (0) | 2017.11.16 |
JAVA chapter 02. 변수와 타입. 2.2 데이터 타입 (0) | 2017.11.16 |