240422
# 오늘 꼭 기억 해야 할 것!
1. 형변환 / 자료형 / 변수
2. 자료형에 대한 바이트 단위
오늘의 학습
● 변수
● 자료형(데이터 타입)
● 형변환
변수 ( Variable : 변하는 수 )
자바에서 변수란 공간의 할당을 의미한다. 할당한 공간을 통해 원하는 값을 넣었다가 뺏다 다른 값을 넣었다가 뺏다
할 수 있는 것이다. 즉, 이런식으로 값이 변할 수 있기 때문에 변수라는 것이다. 예시 코드를 확인해보자.
// 자바에서 변수를 이용해 선언 및 초기화를 하는 방법이다.
int a = 1; // 변수 선언과 동시에 초기화
// int라는 정수형을 알려주는 자료형에 a라는 변수의 이름을 선언 후 값을 넣어주면 된다.
int a; // 변수 선언
a = 1; // 변수 초기화
System.out.println(a); // 출력문 결과 => 1
예시 코드와 같이 int(정수)를 의미하는 자료형을 붙혀주고 바뀌게 될 값들을 담아 줄 저장공간의 이름을 a라고 지어준다.
그리고 내가 넣고자 하는 값을 = 왼쪽의 1처럼 값을 넣어주는 형식이다.
이런식으로 값을 변수에 담아주면 a라는 이름을 통해 변수에 들어간 값의 연산 및 출력을 할 수 있게 된다.
자료형( data type )
앞에서 봤던 int는 정수를 나타내는 자료형이며, 이렇게 다양한 자료형을 통해 해당 변수에 들어가는 값의 데이터타입을
적어줘야 자바 소스 코드 상에서 에러가 안생긴다. 자료형(dataType)같은 경우에는 2가지로 나눌 수 있다.
1. 기본자료형 : char, byte, short, int, long, float, double, boolean ( 8개 )
char a = 'a'; // 문자 하나만을 저장하는 자료형
byte b = 127; // 1Byte(8bit) -128 ~ 127 범위 표현
short c = 12345; // 2Byte(16bit) -32,768 ~ 32,767 범위 표현
int d = 123456; // 4Byte(32bit) -2,147,483,648 ~ 2,147,483,647 범위 표현
long e = 123413435L; // 8Byte(64bit) -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 범위 표현
float f = 0.123F; // 4Byte(32bit) 3.4E+/-38(7개의 자릿수) 범위 표현
double g = 0.123123213; // 8Byte(64bit) 1.7E+/-308(15개의 자릿수) 범위 표현
위의 코드 예시와 같이 자료형은 값의 범위를 가지며 해당 변수에 들어갈 값에 맞춰서 데이터타입을 지정해줘야한다.
2. 참조자료형 : String, Object 등등 다양함
형변환(Type Casting)
형변환은 자료형 즉, 데이터 타입의 변환을 말하는 것이다.
형변환은 앞에서 보았던 바이트의 크기의 따라 크게 2가지로 자동 형변환 & 강제 형변환으로 나뉜다.
// 자동 형변환
int intNumber = 1;
long longNumber = intNumber;
System.out.println(longNumber);
// 출력 결과 : 1
// 강제 형변환
int intNumber = 1;
short shortNumber = (short)intNumber;
System.out.println(shortNumber);
// 출력 결과 : 1
위의 코드의 예시를 살펴보면 int(4Byte) 크기의 변수 하나를 선언과 동시에 초기화를 진행 시켜주었다.
그 후 int(4Byte)의 변수를 long(8Byte)의 크기의 변수에 넣어 주었다. 문제 없이 결과 1이 출력된 걸 확인 할 수 있고
그 밑에는 int(4Byte)의 변수를 short(2Byte)의 크기의 변수에 넣어줄 때 (short)라고 명시를 한 것을 볼 수 있다.
이렇게 작은 타입에서 큰 타입으로 형변환 할때는 아무것도 명시하지 않아도 자동으로 형 변환이 되는 것을 자동형변환
그리고 큰 타입에서 작은 타입으로 형변환을 할때는 데이터타입을 명시해줘야 형변환이 된다. 이것이 강제형변환 이다.
알아두면 좋은 것
작은 크기의 타입이 큰 크기의 타입과 계산 될 때는 자동으로 큰 크기의 타입으로 형 변환이 된다.
# 오늘의 회고
공부하면서 든 생각은 자바에서 코드로 명시한 것들은 모두 이진수로 바뀌어 운영체제에 전달되게 되는것 같다.
자바에서 아스키코드를 이용해 숫자를 문자로 치환한 후 보여주는 느낌인 것 같다. 문자를 입력하면 문자를 자바에선
아스키코드를 이용해 숫자로 치환한 후 그 숫자를 이진수 계산법을 통해 0과 1로만 이루어진 숫자로 만들고 운영체제
에게 전달하는 것이 아닐까 하는 생각이든다. ( 이건 한번 나중에 질문해보면 좋을듯 싶다. )
'내일배움캠프 Spring 5기' 카테고리의 다른 글
내일배움캠프 8일차 TIL - 컬렉션(Collection) (0) | 2024.04.24 |
---|---|
내일배움캠프 7일차 TIL - 배열(Array) (0) | 2024.04.23 |
내일배움캠프 5일차 TIL( 웹 서비스 ) (0) | 2024.04.19 |
내일배움캠프 4일차 TIL( SQL ) (0) | 2024.04.18 |
내일배움캠프 3일차 TIL( Git - Branch/reset/revert/merge/rebase ) (0) | 2024.04.17 |