프로그래밍/JAVA

[ JAVA ] 변수의 타입

리신 2022. 8. 24. 20:50
반응형

변수의 타입에는 우리가 주로 사용하는 값의 종류는 크게 '문자와 숫자' 로 나눌 수 있으며,

숫자는 다시 '정수와 실수'로 나눌수 있다.

 

기본형과 참조형

기본형 변수는 실제 값을 저장하고,

참조형 변수는 어떤 값이 저장되어 있는 주소(Memory address)를 값으로 갖는다.

 

기본형(primitive type)
- 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(folat, double)
계산을 위한 실제 값을 저장한다. 총 8개

참조형 (reference type)
- 객체의 주소를 저장한다. 8개 기본형을 제외한 나머지 타입

참조형 타입

- 배열 타입

- 열거 타입

- 클래스

- 인터페이스

 

참조형 변수 선언 방법

클래스이름 변수 이름;  // 변수의 타입이 기본형이 아닌 것들은 모두 참조 변수이다.

참조형 변수를 선언할 때는 변수의 타입으로 클래스의 이름을 사용하므로 크래스의 이름이 참조형 변수의 타입이 된다.

 

참조형 변수 초기화 방법

Date today = new Date // Date객체를 생성해서, 그 주소를 today에 저장

위 코드는 Date클래스 타입의 참조 변수 today를 선언한 것임.

객체를 생성하는 연산자 new의 결과는 생성된 객체의 주소를 가지고 있음.

대입 연산자를 사용하여 today라는 변수에 할당된 주소 값을 담고,  참조 변수 today를 통해서 생성된 객체를 사용할 수 있게 된다.

 

* 자료형(data type)과 타입(type)의 차이

자료형은 저장할 값(data)의 종류에 따라 구분되므로 자료형(data type)이라는 용어를 사용

타입은 참조형 변수의 종류를 구분할 때는 타입이라는 용어를 사용

-> 참조형은 항상 객체의 주소(4byte 정수)를 저장하므로 값(data)이 아닌, 객체의 종류에 의해 구분되므로 타입이라고 씀

 


기본형

자바의 기본형에는 8개의 타입이 있으며 논리형, 문자형, 정수형, 실수형으로 구분할 수 있다.

 

  • 컴퓨터는 0과 1로된 2진수만 숫자로 인식할 수 있고, 1bit(컴퓨터가 값을 저장할 수 있는 최소단위)는 숫자를 인식할 수 있는 하나의 저장공간을 나타냄.
  • 1byte는 8bit(binary digit)이며, 1byte는 8개의 0과 1로 표현이 가능한 수의 범위임
  • 가장 앞 부분인 부호형 비트가 0인경우 양수, 1인경우 음수를 나타냄
  • char의 경우 unsigned형식이기 때문에 맨 앞 비트를 음수 양수 형식으로 사용하지 않음

 

정수형은 아래와 같은 형식으로 수를 표현하고 있다(1byte 크기). short는 아래 형태를 2개, int는 4개, long은 8개를 가지고 있는 셈이다.

 

1. 논리형 boolean

(1) boolean은 true와 false 중 하나의 값을 가진다.

(2) 기본값은 false이다.

(3) Java에서 true와 TRUE는 대소문자를 구분하므로 서로 다른 값이다.

(4) boolean을 제외한 나머지 7개의 기본형은 연산과 변환이 가능하다.

 

2. 문자형 char

(1) 문자를 저장하는데 사용되며, 변수에 하나의 문자만 저장할 수 있다.

(2) 문자를 내부적으로 정수(유니코드)로 저장하므로 정수형 또는 실수형과 연산이 가능하다.

(3) 유니코드 체계를 사용하기 때문에 2byte를 차지한다. 

 

3. 정수형 byte, short, int, long

(1) 정수를 저장하는데 사용되며, byte는 이진 데이터를 다룰 때, short는 C언어와의 호환을 위해서 사용된다.

(2) 정수형은 int가 기본 자료형(default data type)이다.

(3) 효율적인 실행은 int이지만, 메모리 절약을 위해 byte 혹은 short를 사용하는 경우가 있다.

(4) long타입의 변수를 선언 후 값을 저장할 때는 접미사 'L'을 붙여야 한다. ex) 1234L

 

4. 실수형 float, double

(1) 실수를 저장하는데 사용된다.

(2) 실수형은 double이 기본 자료형이다.

(3) float타입의 변수를 선언 후 값을 저장할 때는 접미사'f'를 붙여야 한다. ex) 12.34f

(4) float의 정밀도는 7, double의 정밀도는 15자리이다.

 

* 정밀도 : 유효자릿수가 뜻하는 것은 정밀도를 뜻합니다.

                   즉, 몇자리 까지 오차없이 표현할 수 있는가입니다.

 


상수와 리터럴 (conatant & literal)

상수란?

상수는 변수와 마찬가지로 값을 저장할 수 있는 공간 이지만,

변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다.

 

상수 선언과 초기화 방법

final int MAX_SPEED = 10; // 상수 MAX_SPEED를 선언 & 초기화

- 변수의 타입 앞에 키워드 final을 붙여준다.

- 성수는 반드시 선언과 동시에 초기화 해야함.

- 상수의 이름은 모두 대문자로 하는 것이 암묵적인 관례이며, 여러 단어로 이루어져있는 경우 '_'로 구분한다.

 

리터럴이란?

리터럴은 12,123,3.14,'A'와 갓은 값들이 상수인데,

프로그래밍에서 상수를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의 하여 리터럴이라는 용어를 사용한다.

변수(variable)   : 하나의 값을 저장하기 위한 공간
상수 (constant) : 값을 한번만 저장할 수 있는 겅간
리터럴(literal)    : 그 자체로 값을 의미하는 것

 

리터럴의 타입과 접미사

- 논리형 : 접미사 없음
- 정수형 : 숫자 끝에 L이 붙어 있다면 그 숫자는 long type 그 외는 정수형인 int type
- 실수형  : 3.14, 1.4f ,3.14d ( double이 기본형 따라서 접미사가 없으면 double임)
- 문자형 : 접미사 없음, 다만 문자에 ''따옴표를 붙임
- 문자열 : 접미사 없음, 다만 문자에 ""따옴표를 붙임

 

 

* 참고 자료 JAVA의 정석

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[ JAVA ] Char를 Int로 변환하기  (0) 2022.09.22
[ JAVA ] 클래스와 객체  (0) 2022.09.15
[ JAVA ] 객체지향 프로그래밍이란?  (1) 2022.09.15
[ JAVA ] 다차원 배열이란?  (0) 2022.09.15
[ JAVA ] 변수와 상수  (0) 2022.08.24