java010

제로·2022년 9월 5일
0

Java basic

목록 보기
10/45
post-custom-banner

자바의 데이터 타입 분류

  1. 기본 타입
  2. 참조 타입
    자바는 크게 정수/실수/boolean형을 바로 선언하여 사용하는 기본형 타입과 배열/열거/클래스/인터페이스에 의해 특정한 메모리를 참조하는 참조타입으로 분류된다.

변수의 메모리 사용

  1. 기본 타입 변수 - 실제 값을 변수 안에 저장
    cf) stack영역에 선언하고 실제 데이터를 할당
  2. 참조 타입 변수 - 주소를 통해 객체 참조
    cf) heap영역에 저장하고 이 heap영역의 주소값을 stack영역에 저장
int[] arr01 = {10};
int[] arr02 = {10};
int[] arr03 = arr01; 
arr03[0]=20;
System.out.println(num01+":"+num02);  //  서로 다른 주소값 출력
System.out.println(arr03[0]+":"+arr01[0]); 
// 같은 주소에 있는 데이터를 이름만 달리하고 호출하기에 동일한 데이터를 갖고 있다. 

NullPointerException

  1. 객체가 heap영역에 생성되지 않았을 때, 구성요소를 호출하면 runtime exception인 NullPointerException가 발생한다.
class Person{
		int age;
        String name;
        } // 사용정의 class선언
public static void main(String[] args) {
	Person p01;
    p01 = null; // 객체는 초기화를 stack영역에 null로 한다. 
    			// 이때 heap영역의 객체는 생성되지 않았다.
System.out.println(p01); // null출력   
}
System.out.println(p01.age); // java.lang.NullPointerException 에러발생
p01 = new Person(); // 객체가 heap영역에 생성된다.
System.out.println(p01.age); // int의 초기값 0 출력

cf) 모든 객체는 객체가 생성됨과 동시에 구성요소들이 초기화된다. 숫자는 0, 객체(String 포함)는 null로 초기화

profile
아자아자 화이팅
post-custom-banner

0개의 댓글