티스토리 뷰
Programming Language/JAVA (2) - 혼공자
[Java 혼자 공부하는 자바] 변수의 타입 - 기본(Primitive type), 참조(Reference type)
나수비니 2023. 9. 23. 01:21728x90
핵심 키워드
- 기본 타입, 참조 타입, 메모리 사용 영역, 번지 비교, 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());
'Programming Language > JAVA (2) - 혼공자' 카테고리의 다른 글
[Java 혼자 공부하는 자바] 필드 (0) | 2023.09.24 |
---|---|
[Java 혼자 공부하는 자바] 객체 지향 프로그래밍 (0) | 2023.09.23 |
[Java 혼자 공부하는 자바] for문, while문, do-while문, break문, continue문 (0) | 2023.09.23 |
[Java 혼자 공부하는 자바] 증감, 비교, 논리, 대입, 삼항 연산자 (0) | 2023.09.22 |
[Java 혼자 공부하는 자바] System.out.println(), System.out.print(), System.out.println(), System.in.read(), Scanner (0) | 2023.09.21 |