Java 자료형 및 메모리 구조

Codren·2021년 5월 29일
0
post-custom-banner

Section 1. Java 자료형

1. Java 기본 자료형 (Primitive Type)

  • int / float / double / char / boolean 등 다른 언어와 동일하게 기본 자료형 존재
  • 문자열 자료형은 string 객체 (클래스)가 따로 존재
  • 상수 변수 - final 키워드 이용
  • 정적 변수 - static 키워드 이용




2. Java 참조 자료형 (Reference Type)

  • 객체 (클래스)를 타입으로 변수를 선언하는 자료형
  • String 객체는 생성할 때 new () 명시 생략 가능
Car car1 = new Car("생성자 변수");			# Car = 참조 자료형 (Car 클래스를 타입으로 함)




3. 변수 저장 방식

  • 기본 자료형 - 값을 변수에 저장
  • 참조 자료형 - 객체 (인스턴스)의 주소를 레퍼런스 변수에 저장




3. Literal 자료형

  • 프로그램에서 사용하는 숫자, 문자, 논리 값 등을 뜻함
  • 리터럴은 상수풀 (Constant Pool) 내에 존재
  • 기본 자료형 변수에 저장되는 값이 바로 이 literal 자료형
  • 정수 리터럴 -> int  /  실수 리터럴 -> double 로 저장됨
double dnum = 3.14;
float fnum = 3.14F;		# 식별자 명시 




4. 형변환

서로 다른 자료형 간 연산을 위해 하나의 자료형으로 통일하는 것

  • 묵시적 형변환(자동 형변환)과 명시적 형변환(강제 형변환)
  • 바이트 크기가 작은 자료형에서 큰 자료형으로 형 변환은 자동으로 이루어 짐
# 자동 형변환
byte bNum = 10;
int iNum = bNum;  

int iNum1 = 20;
float fNum = iNum2;

# 강제 형변환
int iNum = 10;
byte bNum = (byte)iNum;

double dNum = 3.14;
int iNum2 = (int)dNum;



Section 2. Java 메모리 구조

1. 일반적인 프로그램 메모리 구조

  • 정적 메모리 영역 / 동적 메모리 영역 존재
  • 정적 메모리 할당 / 동적 메모리 할당 존재



2. Java JVM 메모리 구조

  • Thread 고유 영역 - Stack 영역
  • Thread 공유 영역 - Method, Heap 영역

  • 메소드 영역
    - Constant Pool 존재

  • 힙 영역
    - String Constant Pool 존재
    - 클래스를 기반으로 실제로 생성된 객체 (인스턴스)가 존재

  • 스택 영역
    - 지역 변수 , 메인 함수 내의 레퍼런스 변수 등 존재
post-custom-banner

0개의 댓글