코이팅

Java 자료형(Java Data Typ) 본문

JAVA

Java 자료형(Java Data Typ)

코이팅 2023. 1. 11. 17:25
728x90
반응형

Java 자료형의 유형

Java 자료형의 유형은 크게 기본 자료형참조 자료형으로 나뉩니다.

 

🟡 기본 자료형 (primitive data type)    

  • ≒ 기본 타입 (primitive type)
  • ≒ 원시 타입
  • 자바 컴파일러에 의해서 해석되는 자료형
  • 실제 값을 갖는 자료형
  • 자바에서 여러 형태의 타입을 미리 정의하여 제공
  • 정수, 실수, 문자, 논리을 저장하는 자료형

 

🟡 참조 자료형 (primitive data type)    

  • ≒ 참조 타입 (reference type)
  • 기본형을 제외한 타입들이 모두 참조 자료형입니다.
  • 값이 아닌 객체의 주소를 가지고 있는 자료형
  • 자바 라이브러리 API에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 선언하는 경우
  • 배열, 클래스, 인터페이스 타입 자료형

 

Java의 기본 자료형

🟡 Java 기본 자료형의 특징

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

🟡 Java 기본 자료형의 종류

다음 표는 자바의 기본 자료형입니다.

자료형 데이터 크기(byte) 표현가능범위
boolean 참과 거짓 1byte true, false
char 문자 2byte 유니코드 문자
byte 정수 1byte -128 ~ 127
short 정수 2byte -32,768 ~ 32,767
int 정수 4byte -2,147,483,648 ~ 2,147,483,647
long 정수 8byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float 실수 4byte ± (1.40 x 10^-45 ~ 3.40 x 10^38 )
double 실수 8byte ± (4.94 x 10^-324 ~ 1.79 x 10^308 )

정리하자면,

  • 정수 표현 : byte, short, int, long
  • 실수 표현 : float, double
  • 문자 표현 : char
  • 참과 거짓의 표현 : boolean

🟡 boolean

  • 논리형, 참과 거짓을 저장하는 타입입니다.
  •  boolean의 기본값은 false입니다.
  • 주로 yes/no, on/off 등의 논리 구현에 주로 사용되며 두가지 값만 표현하므로 가장 크기가 작습니다.
  • boolean은 실제로 1bit면 충분하지만, 데이터를 다루는 최소 단위가 1byte이므로 메모리 크기가 1byte입니다.

🟡 char

  • 문자형, 2byte의 문자 하나를 입력하는 데이터형입니다.
  • '문자 1개'를 저장하는 데이터형이라는 것을 알아야 합니다.
  • char 변수명 = '값';

🟡 byte

  • 정수형, 이진데이터를 다루는데 사용되는 타입니다.

🟡 int

  • 정수형, 자바에서 정수 연산을 하기 위한 기본 타입입니다.
  • byte 혹은 short 의 변수가 연산을 하면 연산의 결과는 int형이 됩니다.

🟡 long

  • 정수형, 수치가 큰 데이터를 다루는 프로그램(은행 및 우주와 관련된 프로그램)에서 주로 사용하는 타입입니다.
  • long 타입의 변수를 초기화 할 때는 정수값 뒤에 알파벳 'L'을 붙여서 long 타입(즉, 8byte)의 정수 데이터임을 알려주어야 합니다.
  • 정수값이 int의 값의 저장 범위를 넘는 정수에서 'L'을 붙이지 않는다면 컴파일 에러가 발생합니다.
long l = 2147483648; // 컴파일 에러 발생합니다. 

long l = 2147483648L; // 컴파일 에러 발생하지 않습니다.

🟡 float, double

  • 실수형입니다.
  • float(4바이트) / double(8바이트)
  • 실수를 가수와 지수 형식으로 저장하는 부동소수점 방식으로 저장됩니다.
  • 가수를 표현하는데 있어 double형이 float형보다 표현 가능 범위가 더 크므로 double형이 보다 정밀하게 표현할 수 있습니다.
  • 자바에서 실수의 기본 타입은 double형이므로 float형에는 알파벳 'F'를 붙여서 float 형임을 명시해주어야 합니다.
float f = 1234.567; // 무조건 double 타입으로 이해하려고 하므로 컴파일 에러가 발생합니다.

float f = 1234.567F; // float type이라는 것을 표시해야 합니다. 컴파일 에러 발생하지 않습니다.

 

Java의 참조 자료형 (reference data type)

🟡 Java 참조 자료형의 특징

  • 빈 객체를 의미하는 Null이 존재합니다.
  • 문법상으로는 에러가 없지만 실행시켰을 때 에러가 나는 런타임 에러가 발생합니다.
    ex) 객체나 배열을 Null 값으로 받으면 NullPointException이 발생하므로 변수 값을 넣어야 합니다.
  • new로 인하여 생성하는 것들은 메모리 영역인 Heap 영역에 생성을 하게되고, Garbage Collector가 돌면서 메모리를 해제합니다.
  • Heap 메모리에 생성된 인스턴스는 메소드나 각종 인터페이스에서 접근하기 위해 JVM의 Stack 영역에 존재하는 Frame에 일종의 포인터(C의 포인터와는 다르다)인 참조값을 가지고 있어 이를 통해 인스턴스를 핸들링합니다.

🟡 Java 참조 자료형의 종류

  • class type (클래스)
  • interface type (인터페이스)
  • array type (배열)
  • enum type (열거)
  • 기타..

❗️String Class (문자열)

String Class는 참조형에 속하지만 기본적인 사용은 기본형처럼 사용합니다.
  • 불변(immutable)하는 객체입니다.
  • String 클래스에는 값을 변경해주는 메소드들이 존재하지만, 해당 메소드를 통해 데이터를 바꾼다 해도 새로운 String 클래스 객체를 만들어내는 것입니다.
  • 일반적으로 기본자료형의 비교는 '== 연산자'를 사용하지만 String 객체간의 비교는 '.equals() 메소드'를 사용해야 합니다.

 

[참고 링크]

https://sublivan.tistory.com/4#String%--Class%---%EB%AC%B-%EC%-E%--%EC%--%B--

728x90
반응형

'JAVA' 카테고리의 다른 글

JVM(Java Virtual Machine)이란?  (0) 2023.01.05
자바(Java)란?  (0) 2023.01.05
Comments