Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
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
Archives
Today
Total
관리 메뉴

공일

[2일] 변수와 타입 본문

프로그래밍/JAVA

[2일] 변수와 타입

Gong일 2023. 5. 25. 19:57
반응형

 

목차

1. 자바 변수의 기본형

2. 변수 초기화와 대입의 차이

3. 자동 타입 변환과 강제 타입 변환

 

 

자바 변수의 기본형

 

1. 기본형 (8가지)

   1) 정수 타입: byte, short, char, int, long 

타입 메모리크기 저장되는 값의 허용 범위
byte 1byte 8bit -2^7 ~ (2^7-1) -128 ~ 127
short 2byte 16bit -2^15 ~ (2^15-1) -32,768 ~ 32,767
char 2byte 16bit 0 ~ (2^16-1) 0 ~ 65535(유니코드)
int 4byte 32bit -2^31 ~ (2^31-1) -2,147,483,648
  ~ 2,147,483,647
long 8byte 64bit -2^63 ~ (2^63-1) -9,223,372,036,854,775,808
  ~ 9,223,372,036,854,775,807

   

2) 문자 타입: char(문자 리터럴)

     * 문자 리터럴: 하나의 문자를 작은 따옴표(')로 감싼 것

     * 문자 리터럴을 유니코드로 저장할 수 있도록 char 타입 제공

char var1 = 'A'; // 'A' 문자와 매핑되는 숫자 65 대입
char var3 = '가'; // '가' 문자와 매핑되는 숫자 44032로 대입

     * char 타입도 정수 타입에 속함

char c = 65; // 10진수 65와 매핑되는 문자 'A' 대입
char c = 0x0041; // 16진수 0x0041와 매핑되는 문자 'A'대입

   

3) 실수 타입: float, double

타입 메모리크기  값의 허용 범위
(양수 기준)
유효 소수 이하 자리
float 4byte 32bit 1.4 x 10^-45 
~ 3.4 x 10^38
7자리
double 8byte 64bit 4.9 x 10^-324
~ 1.8 x 10^308
15자리

   

 4) 논리 타입: boolean

     * 참과 거짓을 의미하는 true와 false로 구성

     * boolean 타입 변수에 대입 할 수 있음

 

 

 

 

초기화와 대입의 차이

 

- 초기화: 변수를 선언하는 시점에 값이 대입되고 메모리에 할당

- 대입: 변수 선언 이후에 이미 생성된 메모리의 값을 변경

int age = 10; // 변수를 선언과 동시에 초기회

age = 12; // 변수에 값을 대입

 

 

 

 

자동 타입 변환과 강제 타입 변환

 

1) 자동 타입 변환

    - 데이터 타입을 다른 타입으로 변환 하는 것

    - 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 대입될 때 발생
      * 값의 허용 범위 순서: byte < short, char < int < long < float < double

    - 정수 타입은 실수 타입보다 값의 허용 범위가 작기 때문에 실수 타입으로 대입되면 자동 타입 변환 됨

       (예외: byte 타입은 char 타입으로 자동 변환 될 수 없음. char은 음수를 표현할 수 없기 때문)

     - byte와 short 타입 변수는 연산 수행 시 int 타입으로 자동 변환되어 연산 수행

       (그렇기 때문에 byte + byte 연산이 수행된 결과를 다시 byte 타입으로 대입할 수 없다)

 

 

2) 강제 타입 변환 (캐스팅 연산자)

    - 큰 허용 범위 타입을 작은 허용 범위 타입으로 쪼개어 저장하는 것

    - 캐스팅 연산자로 괄호()를 사용하며, 괄호 안에 들어가는 타입은 쪼개는 단위

int intValue = 10;
byte byteValue = (byte) intValue; // 강제 타입 변환

    - 최하위 비트 부터 작은 허용 범위 타입에 대입 됨

    - 허용 범위가 초과할 경우 상위 비트가 잘릴 수 있기 때문에 출력했을 때 값이 원래 값과 다를 수 있음

 

 

 

 

 

출처: 한빛미디어 - 이것이 자바다

반응형

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

[3일] 연산자, 조건문과 반복문  (0) 2023.06.01
[1일] JAVA 개념  (0) 2023.05.25
Comments