JAVA에서 변수와 타입이 뭔가요?

koom·2021년 6월 19일
0

JAVA

목록 보기
4/13

🤷‍♂️ 변수가 뭔가요?

검색해보니 변수는 위와 같은 정의를 가지고 있었습니다.

왠지 "변화"와 관련된 단어라는 느낌이 듭니다.

변수, 왜 필요한걸까요?

이런 걸 하고 싶은겁니다.

"안녕하세요 저는 자바를 공부하고 있는 학생입니다."
라는 문구를 어디 저장해 놓고 필요할 때마다 쓰고 싶은겁니다.

여기서 "어디 저장해 놓고 필요할 때마다 쓰고 싶은"이라는 부분이 굉장히 중요합니다.
이게 변수의 전부거든요.

👀 어떻게 저장해 놓고, 어떻게 가져다 쓰는지 확인해볼까요?


String text = "안녕하세요 저는 자바를 공부하고 있는 학생입니다.";

"안녕하세요 저는 자바를 공부하고 있는 학생입니다." 라는 문구를 text라는 이름을 가진 변수명으로 초기화 하는 겁니다.(=text라는 이름을 가진 주머니에 넣는겁니다)

그러면 이제 우리는 text라는 키워드만 가져오면 언제든지
"안녕하세요 저는 자바를 공부하고 있는 학생입니다."
라는 문장을 빼낼 수 있게 되는겁니다.

그리고 위에서 제가 했던 작업이 바로 "변수를 선언"한 것 입니다.


String text = "안녕하세요 저는 자바를 공부하고 있는 학생입니다.";
System.out.println(text);

그리고 이젠 이렇게 text만 가져오면 그 안에 담긴 내용을 재사용 할 수 있게 됩니다..
(System.out.println();의 괄호 안에 원하는 내용을 적으시면 그 내용이 console이라는 창에 출력됩니다.)


그런데 text라는 이름을 가진 주머니는 보통 주머니가 아닙니다.
String타입만 들어갈 수 있는 주머니죠.




🤷‍ 타입이요? 그게 뭔가요?

검색해보니 타입은 위와 같은 정의를 가지고 있었습니다.

왠지 "그룹"와 관련된 단어라는 느낌이 듭니다.


자바에는 타입이라는 개념이 존재합니다.
변수를 선언할 때 해당 변수의 내용물에 뭐가 담기냐에 따라 타입도 달라지게 됩니다.

이런 식입니다.
"숫자는 빨간 주머니에 넣어야합니다."
"문자는 노란 주머니에 넣어야합니다."
라는 규칙이 만들어져 있으니, 우리는 그 규칙에 따라야하는 것이죠.

위 규칙대로라면 숫자는 빨간 주머니에 넣어야하죠...!
근데 만약 실수로 숫자를 노란 주머니에 넣게 되면 어떻게 될까요?
이클립스(자바를 프로그래밍 할 수 있는 툴)에서 친절하게 알려줍니다.
"❗숫자는 빨간 주머니에 넣으세요.❗" 라고 말이죠.


이제 진짜 자바의 타입 종류를 알아보겠습니다.
크게 두 종류(기본형과 참조형)로 나뉩니다.
🔗 자세한 내용은 해당 링크를 참조하시면 도움이 되실 듯 합니다!

  • 기본형
    • byte : 1byte(=8bit), -128 ~ 127의 정수 담을 수 있음
    • char : 2byte(=16bit), 문자1개 담을 수 있음; ('A')이런 거
    • short : 2byte(=16bit), -32,786 ~ 32,767의 정수 담을 수 있음
    • int : 4byte(=32bit), 정수 쓸 때 가장 많이 쓰는 타입; short보다 더 큰 정수 담을 수 있음
    • long : 8byte(=64bit), int보다 더 큰 정수 담을 수 있음
    • float : 4byte(=32bit), 실수 담을 수 있음
    • double : 8byte(=64bit)float보다 큰 실수 담을 수 있음
    • boolean : 1byte(=8bit) true, false 담을 수 있음

  • 참조형
    • 그 외 : 참조형은 값을 담는다는 의미보다는 해당 주머니가 있는 위치를 가리킨다(참조한다)라는 느낌으로 이해하시면 됩니다.

그럼 이제 문자열 a를 변수에 넣고 싶다면 그 타입으로 뭘 적어줘야 할까요?

char a = 'a';

이렇게 적으시면 됩니다!


5라는 정수를 넣고 싶다면요?

byte five = 5;

이렇게 적으시면 됩니다!



자동타입변환

이런 것도 가능합니다.

byte five = 5;	// byte타입의 five라는 주머니에 있는 5를
int intFive = five;	// int타입의 intFive라는 주머니에 대입합니다.

어떻게 그럴 수 있을까요? int는 byte보다 숫자를 담을 수 있는 그릇이 더 큽니다.
int가 byte를 😮와앙ㅇ! 하고 먹어버리는거죠.
이걸 "자동타입변환"이라고 이야기합니다.
byte는 1byte의 크기를 가졌고, int는 4byte의 크기를 가졌습니다. (byte가 int보다 메모리의 크기가 더 작죠?)
작은 크기의 타입이 큰 크기의 타입에 저장될 때 자동으로 타입이 변환되어 저장됩니다.
five에 있는 5는 byte타입이지만,
intFive에 있는 5는 byte타입이 아니라 int타입이 된 것이죠.

0개의 댓글