티스토리 뷰

Java/이론

단순자료형

0bliviat3 2023. 9. 17. 14:13

 

이번 포스팅에서는 자바에서 사용하는 단순 자료형에 대해 다뤄보겠다.

 

기본적으로 자바는 객체지향언어로서 우리가 사용하는 혹은 생각하는 모든 것들을 객체로서 표현하는것을 지향한다.

 

이에 따라 그런 표현방식을 갖기위해선 기본적으로 우리가 어떤 사물이나 사고를 표현하기 위한 최소단위가 필요한데

이를 보통 문자나, 숫자, bool 등의 자료형으로 표현하는 것부터 시작이다.

 

자바에서는 기본자료형으로 이런 것들을 사용할수 있게끔 지원해준다

 

일단 자바에서는 문자와 문자열을 구분한다.

 

문자는 char라는 키워드를 사용해 선언을 하며 이때 ' '를 사용하며,

문자열은 String 클래스를 사용해 선언을 하며 " "을 사용한다.

 

이 외에도 숫자를 표현하기 위해 int, float, double 등의 자료형을  사용하고 정수와 실수를 구분해 사용한다.

 

이런 자료형들은 선언후 컴파일시 메모리공간을 사용해 데이터를 저장하고 처리할수 있도록 한다.

 

따라서 자료형마다 사용하는 메모리 공간의 차이가 있으며 또 그에 따른 표현 범위 또한 다르니

프로그래밍에 있어서 이는 필수적으로 고려해야할 부분이다.

 

앞서 말한 단순자료형에서 원시타입 자료형에 해당하는 것들에 대해

사용하는 메모리 공간, 범위, 기본값을 표로 나타내면 다음과 같다.

 

형태 키워드 메모리 크기 default value 표현 범위
논리값 boolean 1 bit false true or false
문자 char 1byte '\0' (0도 가능) 0~65535
(아스키코드 변환값)
정수 byte 1byte 0 -128 ~ 127
short 2byte 0 -32768 ~ 32767
int 4byte 0 - 2^31 ~  2^31 - 1
long 8byte 0 - 2^63 ~ 2^63 - 1
실수 float 4byte 0.0 -3.4E38 ~ 3.4E38
double 8byte 0.0 -1.7E308 ~ 1.7E308

 

이러한 자료형들을 사용할때 조금 유의할점은 String 보단 char 을 사용하는것이 성능적으로 좋다는 점

그리고 실수의 연산시에 float 자료형은 오차범위가 크다는 점이다.

 

 

위에서 정리한 원시타입의 자료형이 있는가 하면 

 

참조타입의 자료형도 있다.

 

우선 둘의 차이를 말하자면 원시타입의 자료형은 메모리공간상에 현재의 데이터값 그 자체를 저장하지만 참조타입의 자료형은 데이터값이 있는 주소값을 저장한다.

이때 원시타입의 기본값이 있 듯 참조타입 자료형 또한 기본값으로 주소값이 없다는 의미의 null을 갖는다.

 

프로그래밍을 하다보면 사물이나 사고를 표현하기 위해 만든 객체들은

다 이러한 참조타입의 자료형으로 표현이 되는것이다.

 

앞서 언급한 문자열 자료형 String 역시 참조타입의 자료형이지만 이 녀석은 조금 특이하게

자바에서 기본적으로 지원하는 자료형으로 연결 지시자 + 을 사용해 문자열 연결을 시킬수도 있고

new 연산자를 사용하지 않더라도 간단히 선언이 가능하다.

 

단 +을 사용한 연결지시자는 사실 새로운 문자열을 생성해 메모리 공간을 더 사용하는 방식이므로 

StringBuilder 나 StringBuffer를 사용하는 방식이 좀 더 효율적인 코딩이다. 이 부분에 대해선 차후에 설명하도록 하고

 

이러한 참조타입의 자료형은 String을 제외하고는 객체의 주소값을 가져오므로

해당객체의 값을 리턴해줄수 있는 자원을 . 키워드를 사용해 가져와야 한다.

 

참조하는 것만으로 값을 쉽게 가져올 수 있다는 점에서 매력적이지만

성능을 고려한다면 이런 참조횟수를 줄이는것이 더 좋은 코딩이다.

 

참조 타입에 대한 부가적인 설명은 추후에 객체에 대한 포스팅에서 Wrapper 클래스와 함께 자세히 다루도록 하겠다.

'Java > 이론' 카테고리의 다른 글

Enum  (0) 2023.11.24
함수형 인터페이스 (JAVA)  (0) 2023.11.17
제네릭(Generic)  (1) 2023.10.04
연산자 (Operator)  (0) 2023.09.20
형 변환(casting)  (0) 2023.09.17
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함