광규니
광규니네
광규니
전체 방문자
오늘
어제
  • 분류 전체보기 (154)
    • 알고리즘 (100)
      • 알고리즘 개념 (2)
      • 문제 풀이 (96)
    • 주절주절 (19)
      • 자격증, 활동 후기 (4)
      • 전시회 후기 (3)
      • 이모저모 (2)
      • 회고 (3)
      • 뜨럼 (7)
    • 운영체제 (9)
    • 개발 지식 (9)
      • Apple Watch (4)
      • MySQL (2)
      • Eclipse (1)
      • XCode (1)
    • 네트워크 공부 (1)
    • 데이터베이스 공부 (5)
    • Java 공부 (7)
    • TMP (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 구현
  • 애플워치 앱 만들기
  • BFS
  • 알고리즘
  • 자바
  • 프로그래머스
  • OS
  • 운영체제
  • 파이썬
  • 티스토리챌린지
  • 오블완
  • 백준
  • 애플워치 앱
  • BOJ
  • 다이나믹 프로그래밍
  • 합주
  • 컴퓨터 사이언스
  • 개념
  • 드린이
  • DP

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
광규니

광규니네

Java 공부

자바의 데이터 타입(Primitive type, Reference type)

2022. 2. 28. 20:42
반응형

자바에서 크게 기본형(Primitive Type), 참조형(Reference type) 두가지 타입으로 나뉜다.

Java Data Type 
ㄴ Primitive Type
    ㄴ Boolean Type(boolean)
    ㄴ Numeric Type
        ㄴ Integral Type
            ㄴ Integer Type(byte, short, int, long)
            ㄴ Floating Point Type(float, double)
        ㄴ Character Type(char)
ㄴ Reference Type
    ㄴ Class Type
    ㄴ Interface Type
    ㄴ Array Type
    ㄴ Enum Type
    ㄴ etc.

 

Primitive Type(기본형)

  • JAVA에서는 총 8가지의 Primitive type을 미리 정의하고 제공합니다.
  • 자바에서 기본 자료형은 반드시 사용하기 전에 선언(Declared)되어야 합니다.
  • OS에 따라 자료형의 길이가 변하지 않습니다.
  • 비객체 타입입니다. 따라서 null 값을 가질 수 없습니다. 만약 Primitive type에 Null을 넣고 싶다면 Wrapper Class를 활용합니다.
  • 스택(Stack) 메모리에 저장됩니다.

Reference Type(참조형)

  • JAVA에서 Primitive type을 제외한 타입들이 모두 Reference type 입니다.
  • Reference type은 JAVA에서 최상인 java.lang.Object클래스를 상속하는 모든 클래스들을 말합니다. 물론 new로 인하여 생성하는 것들은 메모리 영역인 Heap 영역에 생성을 하게되고, Garbage Collector가 돌면서 메모리를 해제합니다.
  • 클래스 타입(class type) , 인터페이스 타입(interface type) , 배열 타입(array type) , 열거 타입(enum type)이 있습니다.
  • 빈 객체를 의미하는 Null이 존재합니다.
  • 문법상으로는 에러가 없지만 실행시켰을 때 에러가 나는 런타임 에러가 발생합니다. 예를 들어 객체나 배열을 Null 값으로 받으면 NullPointException이 발생하므로 변수 값을 넣어야 합니다.
  • Heap 메모리에 생성된 인스턴스는 메소드나 각종 인터페이스에서 접근하기 위해 JVM의 Stack 영역에 존재하는 Frame에 일종의 포인터(C의 포인터와는 다릅니다.)인 참조값을 가지고 있어 이를 통해 인스턴스를 핸들링합니다.

 

 

 

ref)

https://gyoogle.dev/blog/computer-language/Java/Primitive%20type%20&%20Reference%20type.html

https://gbsb.tistory.com/6

반응형
저작자표시 (새창열림)

'Java 공부' 카테고리의 다른 글

Java Stream 정리글  (0) 2022.03.02
Java 컴파일 과정  (0) 2022.02.28
동기화(Synchronized ) vs 비동기화(Asynchronized) / 블로킹(blocking)과 논블로킹(non-blocking)  (0) 2021.11.14
Java 객체 직렬화(Serialization) 와 역직렬화(Deserialization)  (0) 2021.11.14
자바 스레드(Thread) 정리글  (0) 2021.11.14
    'Java 공부' 카테고리의 다른 글
    • Java Stream 정리글
    • Java 컴파일 과정
    • 동기화(Synchronized ) vs 비동기화(Asynchronized) / 블로킹(blocking)과 논블로킹(non-blocking)
    • Java 객체 직렬화(Serialization) 와 역직렬화(Deserialization)
    광규니
    광규니
    공부 및 일상 올리기~

    티스토리툴바