개발자 데뷔!

03. [Java] 자료형 본문

프로그래밍 언어/Java

03. [Java] 자료형

물꼮이 2022. 1. 31. 16:32

변수 자료형

  정수형 문자형 실수형 논리형
1byte byte - - boolean
2byte short char - -
4byte int - float -
8byte long - double -

 

자료형 바이트 크기 수의 범위
byte 1 -2의 7승 ~ 2의 7승 -1
short 2 -2의 15승 ~ 2의 15승 -1
int 4 -2의 31승 ~ 2의 31승 -1
long 8 -2의 63승 ~ 2의 63승 -1

 

* 서로다른 변수형을 연산하면 → 기본형인 int 값으로 변환되어 저장된다.

* 자바에서는 어떤 자료형으로 선언하든, 기본형인 int 값으로 변환되어 저장되기 때문에, 

   int 형범위에 벗어나는 숫자를 long 형 등에 선언 할 대는, 숫자뒤에 식별자 L을 붙인다. 

* float 형의 식별자는 F를 사용한다.

long num = 12345678900L;

* char은 문자 자료형이지만, 컴퓨터 내부에는 정수값(아스키 값)으로 저장되므로, 정수 자료형으로 분류하기도 한다! 

* 단, char형은 음수값을 표현할 수 없다는 차이가 있다!!! 

 

리터럴 

: 리터럴(literal)은 프로그램에서 사용되는 모든 숫자, 문자, 논리값을 가리킨다. 

- 프로그램 시작 시, 시스템에 같이 로딩되어 특정 메모리 공간인 상수풀(constant pool) 에 놓인다.

- 이후, 이 상수풀에서 대입할 값을 꺼내와 변수에 대입하는 것이다. 

 

인코딩 방식

문자 인코딩 방식 기본 크기 특징
아스키 코드 (ASCII) 1 byte 영문자, 숫자, 특수문자 등 모두 1바이트로 표현 가능하므로 1바이트만 사용
유니 코드 (unicode) 2 byte 한글 등 다른 언어의 문자는 1바이트만으로 표현하기 어려우므로 2바이트, 또는 그 이상의 조합으로 표현

* 유니코드의 1바이트 값은 아스키코드값과 호환됨!!! 

* 유니코드를 표현하는 인코딩 방법은 UTF-8, UTF-16, 두가지가 있는데,

  자바의 기본 인코딩 방식은 모든 문자를 2바이트로 표현하는  UTF-16이다. 

* java의 기본형 = 유니코드 !!

* 문자 사용 시 → 작은따옴표 (' ') 사용

  문자열 사용 시 → 큰따옴표 (" ") 사용 

* 같은 문자도, 작은따옴표를 사용할 때와, 큰따옴표를 사용할 때 다르다.

* 문자열 끝에는 항상 NULL ('\0') 문자가 따라붙기 때문

 


지역 변수 자료형 추론 (local variable type inference)
Java 10 부터, 자료형을 명시하지 않고도, 변수를 사용할 수 있게됨
ex) var 형 사용 (지역변수에만 가능) → 추천되는 방법은 아님 

 

 

형 변환

: type conversion. 

형변환의 기본원칙은 다음과 같다. 

  • 바이트 크기가 작은 자료형 → 큰 자료형 형변환은 자동으로 이루어진다. 
  • 덜 정밀한 자료형  → 더 정밀한 자료형 형변환은 자동으로 이루어진다.

 

 기본원칙에 따라 형변환이 일어나면, 자동형 형변환(묵시적 형변환),

 기본원칙에 위배되는 방향으로 형변환이 일어나면, 강제 형변환(명시적 형변환)이라고 한다.

 


상수선언

: 항상 변하지 않는 값을 상수(constant)로서 선언 

예약어 final 사용

ex)

final int MAX = 100;

* 상수는 값을 변경할 수 없다!

* 상수는 대문자 사용하고, 단어 연결 시 _ 를 사용하는것이 일반적