Languages/Java

[Java] Primitive Type & Reference Type

2023. 7. 31. 23:03
목차
  1. Primitive Type (기본형 타입)
  2. 기본형 타입의 종류
  3. Reference Type (참조형 타입)

Primitive Type (기본형 타입)

논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)

  •  자바에서 기본적으로 제공되는 8개의 데이터 타입으로, 스택 메모리에 데이터의 값을 직접 저장한다.
  • 사용하기 전에 반드시 선언(Declared)되어야 한다.
  • OS에 따라 자료형의 길이가 변하지 않는다.
  • null 값을 가질 수 없으며 null 을 넣고 싶다면 Wrapper Class를 활용하면 된다.
Wrapper Class
기본형 타입을 객체로 감싸는 클래스
byte: Byte / short: Short / int: Integer / long: Long / float: Float / double: Double / char: Character / boolean: Boolean
Java1.5 부터 오토박싱(Autoboxing)과 오토언박싱(Unboxing) 기능이 도입되면서 기본형 타입과 Wrapper 클래스 간의 변환을 자동으로 처리할 수 있게 되었다.

기본형 타입의 종류

  • boolean
    • 조건문과 논리 연산에서 사용되며, 프로그램의 흐름 제어에 사용되는 타입
  • char
    • 문자를 저장하고 처리할 때 사용되는 타입
  • byte
    • 주로 이진데이터를 다루는데 사용되는 타입
  • short
    •  c언어와의 호환을 위해 사용되는 타입
  • int
    • 대부분의 정수 연산에서 사용되는 타입
  • long
    • 수치가 큰 데이터를 다풀 때 주로 사용되는 타입
    • 초기화 할 때 숫자 뒤에 알파벳 L 을 붙여서 long 타입의 정수 데이터임을 알려줘야 한다.
  • float, double
    • 실수를 가수와 지수 형식으로 저장하는 부동소수점 방식으로 저장
    • double이 float 보다 정밀하게 표현할 수 있다.
    • 자바에서 실수의 기본 타입은 double이므로 float에는 알파벳 F를 붙여서 float 타입의 실수 데이터임을 명시해주어야 한다.

 

Reference Type (참조형 타입)

객체의 주소를 저장하며 8개의 기본형을 제외한 나머지 타입이다. 자바의 클래스, 인터페이스, 배열, enum 등은 모두 참조형 타입에 속한다. 자바는 참조형 변수 간의 연산을 할 수 없으므로 실제 연산에 사용되는 것은 모두 기본형 변수이다.

  • 해당 객체가 저장된 메모리의 주소(참조값)를 변수에 저장한다.
  • 객체 생성과 Heap 메모리
    • 참조형 타입으로 선언된 변수는 객체를 생성할 때 'new' 키워드를 사용하여 Heap 메모리에 인스턴스를 생성한다.
    • Heap 메모리는 동적으로 할당되며, Garbage Collector가 더 이상 참조되지 않는 객체를 탐지하고 자동으로 메모리를 해제한다.

  • null 값
    • 참조형 변수는 객체가 생성되지 않았을 때 'null' 값을 가질 수 있다. 
    • 객체나 배열을 'null'로 받으면 NullPointException이 발생할 수 있다.

  • 참조값(Reference Value)
    • Heap 메모리에 생성된 인스턴스는 메서드나 다른 객체에 접근하기 위해 Stack 영역에 존재하는 일종의 '포인터'인 참조값을 가지고 있다.
    • 참조값을 통해 인스턴스를 핸들링하며, 이를 통해 인스턴스의 멤버 변수나 메서드에 접근할 수 있다.

  • String 클래스
    • String 클래스는 참조형에 속하지만, 불변(immutable)한 객체이기 때문에 사용은 기본형처럼 사용할 수 있다.
    • String 클래스의 값은 변경할 수 없으며, 변경하고자 할 때는 새로운 String 클래스를 생성하여 처리한다.
    • 따라서 String을 자주 조작해야 할 경우에는 가변(mutable)한 문자열을 다루는 'StringBuilder'또는 'StringBuffer' 클래스를 사용하는 것이 더 효율적이다.
저작자표시 (새창열림)

'Languages > Java' 카테고리의 다른 글

[Java] Casting  (0) 2023.08.10
[Java] 문자열 클래스 & 오브젝트 클래스  (0) 2023.08.10
[Java] 직렬화 (Serialization)  (0) 2023.07.31
[Java] 오토 박싱(Autoboxing) & 오토 언박싱(Unboxing)  (0) 2023.07.31
[Java] Call by Value & Call by Reference  (0) 2023.07.24
  1. Primitive Type (기본형 타입)
  2. 기본형 타입의 종류
  3. Reference Type (참조형 타입)
'Languages/Java' 카테고리의 다른 글
  • [Java] 문자열 클래스 & 오브젝트 클래스
  • [Java] 직렬화 (Serialization)
  • [Java] 오토 박싱(Autoboxing) & 오토 언박싱(Unboxing)
  • [Java] Call by Value & Call by Reference
dbssk
dbssk
dbssk
K.Back-end
dbssk
  • 분류 전체보기 (220)
    • 끄적 (0)
    • TIL (8)
      • Trouble Shooting (1)
    • Programmers (94)
      • Lv.0 (29)
      • Lv.1 (40)
      • Lv.2 (25)
    • 백준 (15)
    • 구름 (0)
    • Computer Science (79)
      • 컴퓨터 구조 (3)
      • Operating System (18)
      • 알고리즘 (9)
      • 자료구조 (11)
      • Database (10)
      • Network (8)
      • Web (12)
      • Design Pattern (8)
    • Spring (2)
    • Languages (13)
      • Java (13)
    • 북 스터디 (9)
      • 스프링 부트 핵심 가이드 (9)
      • 자바 코딩 인터뷰 완벽 가이드 (0)
    • 프론트엔드 (0)

인기 글

최근 글

태그

  • 백엔드공부
  • 백엔드스쿨
  • 해시
  • LV.1
  • 개발자취준
  • 개발자취업
  • 개발자이력서
  • java
  • LV.2
  • 개발자포트폴리오
  • spring
  • 백준
  • 프로그래머스
  • stack
  • Lv.0
  • 코딩테스트
  • 스택
  • 배열
  • 자료구조
  • hash
hELLO · Designed By 정상우.
dbssk
[Java] Primitive Type & Reference Type
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.