Coding 01

언어의 자료형과 기본형 구분 ( Java ) 본문

coding

언어의 자료형과 기본형 구분 ( Java )

하루우울루 2023. 4. 8. 23:27

언어공부를 하거나 코드를 작성하다 보면 많은 메서드들, 함수들을 사용하게 된다.

 

때때로 정확히 알지 못하는데도 손에 익어 당연히 작성하던 코드들도 다시 생각해 보면 왜 그렇게 쓰는지 생각해 본 적 없을 것이다.

프로그램을 만들 때 중요하다고 생각하는 자료형과 기본형에 대해서 작성해 보려 한다.

 

프로그래밍에서 자료형과 기본형은 중요한 개념이다. 자료형은 변수에 저장되는 데이터의 종류를 나타내며, 기본형은 프로그래밍 언어에서 제공하는 기본적인 자료형을 말한다.

 

Java에서 제공하는 자료형의 분류


자바를 많이 사용해서 자바를 기준으로 작성한다.

 

원시자료형

가장 기본적으로 사용하는 자료형인데 원시자료형은 사용되기 전 무조건 선언이 되어야 한다.

원시형은 프로그래밍 언어에서 제공하는 기본적인 자료형으로, 기본적인 데이터를 표현하고 저장하기 위해 사용된다.

원시자료형은 일반적으로 고정된 크기를 가지고 프로그램의 성능을 향상하기 위해 메모리에 직접 저장되는 경량의 자료형이다.

대부분의 프로그래밍 언어에서는 원시자료형이 미리 정의되어 있고, 언어의 예약어이다.

원시자료형은 간단하고 메모리 효율적인 데이터 저장 방식을 제공해서 프로그램의 성능을 향상하는 장점이 있다.


 

참조자료형

참조자료형은 프로그래밍 언어에서 복잡한 데이터를 표현하고 저장하기 위해 사용되는 자료형이다.

데이터의 주소를 가리키는 참조를 사용하여 변수에 저장하며, 해당 변수는 실제 데이터가 저장된 메모리의 위치를 참조한다.

이렇게 참조자료형은 실제 데이터의 크기가 큰 경우에도 변수에는 데이터의 주소만 저장되기 때문에 메모리 효율적으로 데이터를 다룰 수 있다.


 

래퍼클래스

중요하게 설명하고자 하는 것이다.

 

래퍼클래스는 자바와 같은 프로그래밍 언어에서 기본 자료형(비객체)을 객체 자료형으로 만들어주는 클래스이다.

 

이 래퍼클래스 개념을 이용하여 객체를 사용한 메서드 호출, 객체의 속성에 접근할 수 있게 된다.

그리고 래퍼클래스를 통해 기본 자료형을 참조자료형으로 이용하게 해서 객체지향적인 기능 부분을 만들 수가 있다.

 

래퍼클래스는 기본자료형에 각각 대응되는 클래스를 가진다.

 

래퍼클래스

위의 표를 보면 int가 Integer로 다른 것 제외하고는 대소문자 차이만 있다.

그래서 기억하기도 쉽다.

기본자료형에서는 null 값이 허용이 안되지만, 래퍼클래스에서는 null값이 허용된다.

래퍼 클래스는 기본 자료형 값을 객체로 감싸는 여러 가지 기능을 제공하고, 객체 지향 프로그래밍에서 기본 자료형을 객체로 다룰 수 있도록 도와준다.

 

쉽게 말해서 기본자료형을 객체로 감싸  래퍼클래스를 통해 객체로써 사용된다는 것으로 이해하면 된다.

값의 비교, 자동 박싱과 언박싱, Null 값 허용 등의 기능을 제공하여 기본 자료형 값을 객체로 다룰 수 있는 편의성을 이용할 수 있다.

 

흔히 사용되는 곳은 코드를 작성할 때 자료구조에서 볼 수 있다.

 

객체로서 래퍼클래스가 사용되는 모습

HashMap을 사용할 때를 보면 매개변수로 String,  Integer가 사용되는 모습을 볼 수 있다.

이렇게 자료구조 클래스를 사용할 때 int가 아닌 Integer가 사용되는데 그 이유가 이런 제네릭 타입을 사용하는 자료구조들은 모두 객체만을 다루기 때문이다.

 

제네릭은 Java에서 컬렉션과 같은 자료구조 클래스에서 사용되는 데이터 타입을 미리 지정하지 않고, 클래스를 선언할 때 타입 매개변수로 사용하여 실제 사용될 데이터 타입을 나중에 지정할 수 있도록 해주는 기능이다.

 

이제까지 아무생각없이 원시자료형이 아닌 래퍼클래스를 사용해 왔다면 이번 기회에 제대로 알고 이해했으면 좋겠다.