◻️ DAY-03
챕터 | 자료형 |
---|---|
2-3 | 변수가 저장되는 공간의 특성, 자료형 |
2-4 | 상수 선언하기 |
◻️ 변수와 메모리
변수
는 컴퓨터 내부의 메모리 공간에 저장된다.int level;
문장을 선언하면, 메모리에 4바이트 크기의 공간이level
이란 이름으로 할당된다.- 이후에
level
변수를 연산에 사용하거나 값을 출력할 일이 있으면, 이 공간의 값을 가져와서 사용한다. - 이때 변수 이름을 사용해서 값을 가져온다.
즉, 선언한 변수 이름으로 어떤 위치에 있는 메모리를 얼마만큼의 크기로 사용하겠다는 뜻이다.
◻️ 기본 자료형
기본자료형
: 자바 라이브러리에서 기본적으로 제공하는 자료형기본 자료형은 각 자료형이 사용할 공간의 크기, 즉 바이트 수가 정해져있다.
정수형 | 문자형 | 실수형 | 논리형 | |
---|---|---|---|---|
1바이트 | byte | - | - | boolean |
2바이트 | short | char | - | - |
4바이트 | int | - | float | - |
8바이트 | long | - | double | - |
🧙♂️ 정수 자료형의 특징
byte
형으로 표현할 수 있는 수의 범위: (-128~-127)short
형으로 표현할 수 있는 유효 범위: (-32,768 ~ -32,767)int
형으로 표현할 수 있는 유효 범위: (-2,147,483,648 ~ 2,147,483,647)
정수 자료형으로
int
를 가장 많이 사용하는 이유는 컴퓨터에서 정수로 연산을 할 때4바이트 단위
의 처리방식이 가장 효율적이기 때문이다. 따라서byte
형이나short
형의 연산은 내부적으로int
형으로 변환된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 아래의 두 문장은 모두 오류가 난다
int num1 = 12345678900;
long num2 = 12345678900;
/*
1) num1은 int로 표현할 수 있는 범위를 넘어서기 때문에 오류 발생
2) long은 int로 변환되어 처리되기 때문에 오류 발생
해결방법: long 형을 나타내는 식별자인 L이나 l을 사용하려는 숫자 뒤에 붙인다
*/
long num = 12345678900L;
🚩Commit Link: 2929776
🧙♂️ 문자 자료형의 특징
문자 인코딩
문자를 정해진 코드값으로 변환하는 것문자 디코딩
코드값을 다시 문자로 변환하는 것
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
* Date: 2021-05-09
* Author: 이오니
* Project: [자바 초보탈출 30일]
* Section: 03일차
* Subject: "문자형 변수 선언"
*/
package chapter2_3;
public class CharacterEx1{
puplic static void main(String[] args){
char ch1 = 'A';
System.out.println(ch1); // 문자 출력
System.out.println((int)ch1;) // 문자에 해당하는 정수값(ASCII) 출력
char ch2 = '66';
System.out.println((char)ch2); // 정수값(ASCII)에 해당하는 문자 출력
}
}
👀 ‘A’와 “A”는 전혀 다른 자료형이다. 👀 문자열을 다룰 땐 String 클래스를 사용한다. 👀 String 클래스는 기본 자료형으로 표현할 수 없다.
기본자료형:
byte
,boolean
,short
,char
,int
,float
,long
,double
🚩Commit Link: c596e62
🧙♂️ 실수 자료형
double
Java의 기본 실수 자료형float
식별자 F로 구분해서 사용하는 실수 자료형
1
2
3
4
5
6
7
8
9
10
11
12
13
package section_02.float_n_double1;
public class float_n_double1_0 {
public static void main(String[] arg) {
double dnum = 3.14; // Java에서 실수는 double 형을 기본으로 사용
float fnum = 3.14F; // Float은 식별자 F로 구분
System.out.println(dnum);
System.out.println(fnum);
}
}
🚩Commit Link: 00a73dd
🧙♂️ 논리 자료형
true
또는false
만 대입, 출력 가능한 자료형
1
2
3
4
5
6
7
8
9
10
11
12
13
package section_02.boolean1;
public class boolean1_0 {
public static void main(String[] args){
boolean isMarried = true; // boolean 변수를 선언하고 초기화
System.out.println(isMarried); // 결과 값은 true, false로만 출력
boolean isMarried2 = false;
System.out.println(isMarried2);
}
}
🚩Commit Link: 02d7891
🧙♂️ 상수 선언하기
- 항상 변하지 않는 값을
상수(Constant)
라고 함 - 예약어
final
을 사용하여 선언
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package section_02.constant1;
public class constant1_0 {
public static void main(String[] args) {
final int MAX_DOG_NUM = 30; // 선언과 동시에 초기화
System.out.print(MAX_DOG_NUM);
}
}
/*
* 상수 사용이 편리한 이유는, 나중에 소스코드를 작성할 때
* 특정 소스코드의 상수값이 ex. 30에서 35로 늘어난다면(변경될 경우),
* 해당 값이 사용된 모든 구문을 수정해줄 필요 없이
* 상수를 선언한 부분의 값만 변경해주면 됨
*/
🚩Commit Link: d4bb1ab