Wanna be Brilliant Full-Stack Developer

Java 개념정리! 자료형은 무엇인가? 본문

Some Memos/Java

Java 개념정리! 자료형은 무엇인가?

Flashpacker 2022. 2. 12. 00:54


목표

자바 자료형에 대해서 개념 이해를 해보자!

 

자료형을 배우기에 앞서 어떤 프로그램을 만들거냐면 과일 장사를 해볼것이다.

과일 장사를 하기위해서 과일을 보관할 창고 설계를 할것이다. 창고 설계를 끝나면 과일 장사를 시작할것인데

과일장사를 하기위해 창고 설계를 할것인데 창고는 단순하게 큰 네모박스에 선이 있고 가로는 5개 세로는 4칸 총 20칸 창고가 있다.

내가 만약에 사과와 딸기가 100개씩 있는데 그냥 넣으면 난잡하게 들어가면 어떤 칸에는 사과가 3개가 들어가고 하나가 들어가고 사과가 반쪽이 들어가는등 문제가 생기니 문제를 방지하기 위해서

사과나 딸기를 담을떄

1) 포장을 해야한다! 

한칸을 기준해서 사과를 담아본다 담아보니까 사과가 4개는 안들어가고 3개는 들어가고 공간이 좀남으면 사과를 4개를 못담으니 3개만 남으면 어떻게 되냐면 먼가 공간이 낭비되는 느낌이 든다. 

포장을 만약에 두개의 박스로 넣으면 사과가 총 6개가 들어가고 공간이 0.5는 왼쪽, 0.5는 오른쪽 걸치게되는데 

그래서 포장을 할때는 사과 6개를 창고 2칸에 담길수 있는 만큼 측정하면 되겠다 계산이 된다. 

이 2칸 짜리를 하나의 박스로 만들어 포장해서 저 창고 2칸에 그대로 넣는다

사과 6개를 창고 2칸으로 계산하여 포장하고 창고 2칸에 옮긴다

이렇게 채워나가면 나중에 꺼낼때도 박스채로 꺼내면 일이 굉장히 심플해진다! 

일을 심플하게 하려면 포장해야겠다는 개념을 알기를 원한다!

 

2) 창고에 들어올 과일 양을 알아야한다

창고에 들어오는 과일양을 모르면 창고설계를 했는데 창고가 부족할 수 있다. 

그러면 창고가 먼가 들어올떄 어떻게 설계할 수 있냐면! 사과는 창고 2칸에 6개를 담을 수 있다. 딸기는 창고 4칸에 10개를 담을 수 있다 ( 포장하면서 측정 결과) 

이 상황에서 사과가 30개가 들어오고 딸기가 100개가 들어오면 사과는 총 10칸이 필요하고 딸기는 40칸이 필요하다

총 창고는 50칸이 필요하다는것을 알게되었는데 우리는 이미 20개 창고를 구매 했기떄문에 + 30개 추가 구매해야한다는것을 알게 된다!  

이렇게 해야지 창고 설계가 끝나는것이다!

 

과일 장사를 시작하기 위해서 창고 설계를 할려면 1번은 포장을 해야하고 2번은 양을 알아야한다. 

 

자바에서도 프로그램을 시작을 하기 위해서는 창고 설계를 할 수있어야한다. 

자바는 포장을 어떻게 해야하는지 미리 정해져 있다. 8 가지 자료형이 있는데

첫번째는 boolean 형 타입, 1bit  (0 아니면 1을 저장할 수 있는 박스 하나) : 박스 하나가 있을때는 경우의 수가 있는데 0 아니면 1 으로 경우의수가 2개! 지수는 2의 1승 해서 2개 

두번쨰는 int 형 타입. 32 bit (박스는 32개이다.) 박스는 32개가 되면 2의 32승은 = 42억 9천

그래서 int는 0부터 42억 9천의 수가 있는것!

세번쨰는 double 은 64 bit  , 박스는 64개 , 2의 64승 -> 1800경 

마지막으로 char은 16 bit, 박스는 16개 , 2의 16승 -> 65536 의 수를 표현할 수 있다. 

나머지 4개는 나중에 알아도 된다!

boolean을 제외하고 나머지 밑에 3개는 음수를 같이 표현하기 위해 반을 딱 잘라서 표현한다.

박스를 나눠놓고 이들을 어떤 용도를 사용하냐면

boolean 타입은 참 혹은 거짓인지 int는 정수의 용도, double은 실수, 소수점이하까지 표현! 

char은 문자를 표현 '가', '나', 'A' 

 

자바에서도 폴더가 있는데 Package이다. 

package는 자바파일이 모여 있는 폴더이다!

주의 할점은 자바의 클래스는 무조건 첫글자는 대문자 ex) VarEx01

package ch01;

// 주석 : .class 팡일로 컴파일 되지 않는 
// 패키지 = 자바 파일이 모여 있는 폴더
public class VarEx01 {

	public static void main(String[] args) {
		boolean b1 = true; // 박스에 1이 저장된다!
		boolean b2 = false; // 박스 에 0이 저장된다.
		int n1 = 1000;
		double d1 = 1000.1;
		char c1 = '가';

	}

}

이렇게 저장되면 컴퓨터에서는 실제 물리적으로 어떤식으로 저장이 되는지 다음에 공부해보려고한다! 

'Some Memos > Java' 카테고리의 다른 글

2/15 JAVA 자바 코드 실행 원리!  (0) 2022.02.15
2/14 Java 자료형 메모리 구조 개념 익히기!  (0) 2022.02.15
Java Static, Heap , Stack 이란?  (0) 2022.02.10
SpringBoot JPA란?  (0) 2022.02.10
Java 컴파일과 실행원리  (0) 2022.02.09