Home > Backend > Java > ☕️[Java] 자바 - 변수와 자료형(2)

☕️[Java] 자바 - 변수와 자료형(2)
Java Programming Language Backend

☕️ 자바 - 변수와 자료형(2)

1. 자료형에 대한 이해

자바 프로그래밍에서 사용되는 자료형은 크게 기본형(Primitive types)참조형(Reference types) 두 가지로 나눌 수 있습니다.
각각의 자료형에 대해 설명드리겠습니다.

1️⃣ 기본형(Primitive types)

기본형 자료형은 실제 값을 저장하는 타입으로, 총 8가지가 있습니다.

  • 정수형
    • byte : 8비트 정수형, 값의 범위는 -128에서 127까지.
    • short : 16비트 정수형, 값의 범위는 -32,768에서 32,767까지.
    • int : 32비트 정수형, 값의 범위는 약 -2.14억에서 2.14억까지.
    • long : 64비트 정수형, 값의 범위는 약 -9.22경에서 9.22경까지
  • 실수형
    • float : 32비트 부동 소수점 형. 부정확할 수 있으며, 대략 6~7 자리의 정밀도를 가짐.
    • double : 64비트 부동 소수점 형. float보다 더 정밀하며, 대략 15자리의 정밀도를 가짐.
  • 문자형
    • char : 단일 16비트 유니코드 문자를 저장.
  • 논리형
    • boolean : true 또는 false 값만을 가짐.

2️⃣ 참조형(Reference types)

참조형 자료형은 객체의 참조(메모리 주소)를 저장합니다.
기본형과 달리 메모리의 특정 위치를 가리키는 포인터를 저장하므로, 객체의 크기에 관계없이 참조 변수 크기는 항상 일정합니다.
참조형의 예를 들면 다음과 같습니다.

  • 클래스(Class)
    • 예: String, Integer, File
  • 인터페이스(Interface)
    • 예: List, Map, Serializable
  • 배열(Array)
    • 예: int[], double[], String[]

1.1 인터페이스(Interface)?

자바에서 인터페이스(Interface)는 특정 클래스가 구현해야 할 메소드를 정의하는 “계약”의 역할을 합니다.
이는 클래스가 인터페이스에 정의된 모든 메소드를 반드시 구현하도록 강제합니다.
인터페이스는 메소드의 실제 구현을 포함하지 않고, 메소드의 시그니처(이름, 매개변수 리스트, 반환 유형)만을 정의합니다.
인터페이스를 사용하는 주된 목적은 다음과 같습니다.

  • 1. 추상화(Abstraction) : 인터페이스를 통해 구현의 세부 사항을 숨기고, 사용자에게 필요한 기능만을 제공할 수 있습니다.
    • 이렇게 함으로써 코드의 복잡성을 줄이고, 유지 관리가 쉬워집니다.
  • 2. 다형성(Polymorphism) : 다양한 클래스들이 동일한 인터페이스를 구현함으로써, 다양한 타입의 객체를 동일한 방식으로 처리할 수 있습니다.
    • 이는 코드의 유연성과 재사용성을 높입니다.
  • 3. 결합도 감소(Decoupling) : 인터페이스를 통해 서로 다른 코드 부분 간의 결합도를 낮추어, 각 부분을 독립적으로 개발하고 테스트할 수 있게 합니다.

👉 인터페이스 예시

  • 예를 들어, List 인터페이스는 add ,remove, get, size 등의 메소드를 정의하며, 이 인터페이스를 구현하는 ArrayList, LinkedList 등의 클래스는 이 메소드들을 실제로 구현해야 합니다.
    • 이를 통해 사용자는 구체적인 리스트의 구현 방법을 몰라도 이 인터페이스를 통해 리스트를 사용할 수 있습니다.
      • 이런 방식으로 인터페이스는 참조형 자료형 중 하나로서, 객체의 행동을 정의하고 다양한 구현을 가능하게 합니다.