티스토리 뷰

728x90

핵심 키워드

  • 기본 타입, 참조 타입, 메모리 사용 영역, 번지 비교, null, NullPointExeption

핵심 포인트

  • 참조 타입 종류와 참조 변수의 역할을 정확히 이해하기

 

기본 타입 (primitive type)

  • 정수, 실수, 문자, 논리 리터럴 저장
int age = 25;
double price = 100.5;

스택 영역

  • 기본타입 변수가 생성된 이후 → 값 25와 100.5가 각각 저장되는 곳

 

참조 타입 (reference type)

  • 객체(objective)의 번지를 참조하는 타입
  • 배열, 열거, 클래스, 인터페이스
String name = "신용권";
String nobody = "독서";

힙 (Heap) 영역

  • Java는 문자열을 String으로 인식 → String 객체를 생성 → 힙 영역 문자열(String) 에 저장
  • 100번지, 200번지 등 객체를 갖고있음
  • 즉, 객체와 배열이 생성되는 영역

 

메모리 사용 영역

메소드 영역

  • 클래스 별로
    • 정적필드
    • 상수
    • 생성자
    • 메소드
    • 코드 등을 분류해서 저장

 

JVM (Java Virtual Machine)

  • 메소드가 호출되면 프레임이 추가 → 메소드 종료되면 프레임 제거

 

  • 프레임 내부의 변수 스택 이해하기
char v1 = 'A';

if (v1 == 'A') {
	int v2 = 100;
	double v3 = 3.14;
}

boolean v4 = true;

 

  • 참조타입 변수는 스택 영역에 힙 영역에 생성된 객체의 주소를 가짐
int[] scores = {10,20,30};

 

참조 변수의 ==, ! == 연산

  • 동일한 객체를 참조하는지, 다른 객체를 참조하는지 알아볼 때 사용
  • 번지 값의 비교

==

같으면 ture, 다르면 fale

! =

같으면 false, 다르면 true

 

 

Null과 NullPointerException

Null

  • 객체를 참조하고 있지 않다는 의미.
  • 참조타입 변수는 객체를 참조하지 않는다는 뜻으로**, null값 가질 수 있음**
    • null로 초기화된 참조변수도 스택 영역에 생성

NullPointerException

  • 프로그램 실행 도중 발생하는 오류
  • 참조 타입 변수가 null 상태에서 존재하지 않는 객체의 데이터나, 메소드 사용할 경우 발생
    • 즉, 참조변수의 객체가 없는데 사용하고자 할 때
  • 해당 참조변수가 객체를 참조하도록 수정해서 해결 가능함

 

int[] intArray = null;
intArray[0] = 10; // 배열의 0번째 위치에 10을 저장해라. -> NullPointerException
String str = null;;
System.out.println("총 문자수: " + str.length()); 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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 31
글 보관함