본문 바로가기

백엔드/자바

자바 언어에 관하여

반응형

데이터타입


- 클래스를 이해하기 위한 언어적인 기초

- 데이터 타입의 등장 이유는, 프로그래머가 메모리를 얻어 올 떄 그 크기를 지정하기 위해서.

     * 메모리를 얻는 절차

           필요한 메모리의 크기를 정한다.

           크기에 해당하는 만큼의 메모리를 얻는다.

           메모리에 데이터를 집어넣는다.

 

위와 같은 과정이 매번 반복되는 것을 조금 더 효율적으로 하기 위해서 메모리의 크기를 미리 지정해둔 것을 데이터 타입이라고 한다.

이후 우리가 변수명을 지어줄 시, 우리가 만든 메모리 저장 위치 주소를 식별하는 식별자가 되는 것이다. 

 

포인트는, 데이터 타입은 메모리를 얻을 때 그 크기를 지정하는 것이다.

 

 

- 일반적으로 많이 사용되는 데이터 타입은 컴파일러 차원에서 제공. 이를 기본 데이터 타입 (Primitive Data Type)이라고 한다. byte, char, int, long, float, double, boolean 등이 있는데, 우리는 데이터 타입을 볼 때, 제일 먼저 데이터 타입이 몇 바이트나 될까라는 생각부터 해보아야한다.

 

 

 

-데이터 타입의 또 다른 목적은 메모리의 형태를 지정하는 것이다. 메모리의 형태란, 비트의 조합을 의미한다.

정수 5와 실수 5는 메모리 속에 적재될 때 전혀 다르게 표현이된다. 

즉, 데이터 타입이란, 데이터에 대한 형태를 의미한다.

 

 

 

- 결론적으로 데이터 타입이란, 메모리의 크기와 메모리의 형태를 지정하는 것이라고 정의를 내릴 수 있다. 

 

 

메모리에 대한 이름


int a;라고 정의했다고 가정하자. 우리는 a라는 변수에 대한 메모리를 확보했다. 이 때 a는 내부의 심볼 테이블에서 a와 연결된 주소를 찾아가게 된다. 심볼 테이블이란 컴파일러가 프로그램 내에 필요한 변수들을 주소로 매핑하기 위해 만드는 심볼들의 테이블이다. 

 

 

결론적으로 데이터 타입으로 임의의 이름을 주면, 여러분이 부여한 임의의 이름에 데이터 타입에 해당하는 크기와 형태로 되어있는 메모리를 연결시켜서 동작하게 하는 것이다. 

 

 

- 자바에서는 포인터를 사용하지 않기 때문에 자바 자체적으로 a의 정확한 주소를 확인할 방법은 없다. 따라서 아래와 같은 과정을 가친다.

변수의 선언 : int a; (4바이트의 메모리 생성)

4바이트의 메모리에 값 세팅 (할당) : a = 5;

 

 

기본 데이터 타입의 이해


 

- 다시 한 번 상기하자면, 데이터 타입은 메모리의 크기와 형태를 지정하는 것이다. 

- 데이터 타입을 나눈다는 것은,  비트의 조합이 같은 것과 다른 것을 나눈다는 것을 의미한다.

- 정수형과 실수형의 데이터는 기계는 완전히 다르게 해석. 실수형의 경우는 자바의 경우, IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1965를 따른다. 이는 부동 소수점 5.0을 이진화한 후 지수법으로 정규화를 해야 합니다. 정규화 후에는 부호부, 지수부, 가수부를 각각 계산해주어야 합니다. 

- 정수 5 와 실수형 5.0의 덧셈이 가능한가?? 

 

     *

1. 기본 데이터 타입의 형변환 > 큰 수와 작은 수를 연산했을 때 큰 수로 형변환.

2. 정수와 실수의 연산은, 실수형으로 변환.

3. 작은 수가 큰 수로 형변환되는 것은 자동. (반대의 경우는 강제 형변환이 필요. 오버플로우 발생.)

 

 

- 자바에서는 char형이 2바이트이기 때문에, 새로운 byte형이 생겼고, 이는 자바에서만 사용하며 1바이트 크기의 정수형이다.

- 문자의 표현도 엄밀하게는 수 (Number)이다. 시스템이 문자표를 보관하는데, 이 문자표의 문자들은 하나의 숫자로 표현되어 있다. 따라서 문자 자체를 숫자로 바꾸어 주는 체계가 필요하다. 

- 컴퓨터는 영어권의 문자를 기반으로 발전해 왔으며, 비영어권의 나라들에 대한 문자표를 ASCII 문자로 표현할 수 없었다. 아스키 문자표는 8비트 체계이고, 표현할 수 있는 문자수가 고작해야 256가지이다. 따라서 만국 공통 표준 문자표인 유니코드가등장했다. 

 

 

데이터 타입의 해석


- 데이터 타입 자체만으로는 의미가 없고, 모양만 있는 것. 실제 존재하기 위해서는 변수라는 것을 이용해야 함. 

- 변수란 데이터를 담을 수 있는 메모리. 데이터 타입이 변수를 만든다면, 변수는 그 속에 데이터 타입에 명시된 형태의 데이터를 담을 수 있다. 

 

- 변수는 데이터 타입을 통해서 존재할 수 있다. 

- 변수를 만드는 목적은 데이터를 보관하기 위해서다. 

 

 

반응형

'백엔드 > 자바' 카테고리의 다른 글

자바 - 클래스  (0) 2022.08.25
자바 클래스의 개념  (0) 2022.08.24
Java - POJO  (0) 2022.06.12
자바 - 자료 표현하기  (0) 2022.01.05
자바 관련 용어 정리  (0) 2022.01.05