2021. 6. 22. 00:13ㆍ프로그래밍/개인프로젝트
공부하면서 저의 생각을 정리한 글입니다
틀린내용이 많습니다.
추후에 지식이 쌓인다면 하나씩 업데이트할 생각입니다.
메모리크기 | 자료형 | 표현범위 |
1byte | byte, boolean | - 128 ~ 127 |
2byte | short, char | - 32,768 ~ 32,767 |
4byte | int, float | - 2,147,483,648 ~ 2,147,483,647 |
8byte | long, double | - 93,372,036,854,775,808 ~ 93,372,036,854,775,807 |
데이터의 형태별로 다른게 무엇인가??
- 메모리크기 (표현범위)
* 표현범위에 맞는 형태를 쓴다면 메모리가 절약될 것이고 좀 더 효율적인 프로그램을 만들수 있다
* 정말로 메모리가 빠듯한 상황이라면 데이터의 형태를 바꿔서 메모리를 절약할 수 있다.
* 하지만 정수의 경우 int형태가 cpu에서 처리가 가장 빠르기 때문에
성능을 중시한다면 byte나 short형태보다 int형태를 쓰는것이 좋다
-> 효율과 성능의 관점에서 접근해 보았다
https://bongbong-89.tistory.com/8
컴퓨터에서 시각과 청각을 담당하는 5가지 요소 : 이미지(흑백,컬러), 문자, 소리, 영상
이미지(흑백)
1. 흑백만 필요하므로 boolean형, byte형 사용가능
ex) binary image
2. 0~255의 밝기값 : byte형 사용가능, boolean은 참/거짓 2가지 값만 표현가능하므로 사용 불가능
ex)픽셀의 밝기값을 조절
이미지(컬러)
RGB표현을 하기 위해선 3byte가 필요하므로 int형, float형
* 2byte를 사용하는 char형태나 short형태는 메모리절약이나 성능면이나 장점이 없다고 생각함
메모리절약을 위해선 byte형을 쓰고, 성능이 중요하면 int형을 사용한다
문자
* 문자형은 의미를 담을 수 있는 char형이 제일 좋겠지만 다른형태로 대체할 수 있다면?
* 자바에서 지원하는 문자인코딩은 아스키코드, 유니코드, (영어는 1byte 나머지언어는 2byte)
문자(영어) : 영어는 1byte를 사용하기 때문에 byte형
문자(그외 언어) : 그 외 언어는 2byte를 사용하기 때문에 short형
- CPU에서 int형을 가장 빠르게 처리하지만 메모리 절약을 위해 다른 형태를 사용할 수 있음
소리
8비트 : 효과음은 복잡할 필요가 없기 때문에 byte형이 적절
16비트 : 일반음악이나 cd가 16비트 이므로 short형, char형,
영상
영상은 이미지의 흐름+소리 이므로 int형태로 통합해서 쓰는것이 효율적이다
이런 효율을 추구하는것이 큰 의미는 없지만 알고 안쓰는것과 모르는것은 차이가 있다.
'프로그래밍 > 개인프로젝트' 카테고리의 다른 글
게임만들기(2) - "JAVADOT" 플랫폼게임 (0) | 2021.07.09 |
---|---|
게임만들기(1) - "JAVADOT" 플랫폼게임 (0) | 2021.07.08 |
(JavaFX) - Event Handler (0) | 2021.06.20 |
Java - public static void의 의미 (0) | 2021.06.19 |
heap & stack (0) | 2021.06.15 |