2013년 8월 5일 월요일

2013-08-05 [1강-JAVA기초] 계산기 프로그램 복습, JAVA프로그램 메모리구조와 동작순서, HDD 할당크기, 자료형, 문자인코딩방식의 종류

1.계산기 프로그램 복습

Class를 기능에 따라 묶는다



 (1) 하나의 클래스에 입력,계산,출력을 모두 사용한다.
 (2) 입력,계산,출력 에 따라 각각 기능별로 묶어서 사용
 (3) 기능을 다시 Calculator.class와 CalculatorView.class로 묶어서 사용한다 ->클래스
 (4) 클래스를 다시 묶어서 사용한다 -> 패키지

 - Calculator c3 = c1           <<여기서 c1은 주소를 저장하는 변수(reference)이다.
 - Class를 잘개잘개 쪼갤수록 재사용성이 높아진다.



2.JAVA프로그램 메모리구조와 동작순서



일단 메모리를 3영역으로 나누어 봤습니다. Static 영역이 빠지긴 했지만 이 프로그램에서는 크게 필요하지 않으므로 넘어갑니다.




java.exe -classpath ... ...CalcTest 를 실행하면 아래와 같은 작업이 일어납니다.



 - (9)번에서 init()메서드는 모든 기능을 다하고 return하고 나면 사라집니다.

 - Calculator init(c1,10);                <<c1과 10은 argument라고 부른다(넘겨주는값)
 - public static void init(Calculator instance, int v1)    <<instance와 v1은 parameter이다.(넘겨     받은값을 저장하는변수)

 - instance안에 method가 있는 것이 아닙니다. method()는 Heap 영역에 존재하지 않습니다.


3.HDD 할당크기


HDD는 전기가 아닌 자석가루 띠로 이루어져 있다.

아래 그림은 HDD가 한번에 저장하는 단위인 클러스터입니다.
 a.txt가 2byte면 1번에 저장되고
 b.txt가 5byte면 그 다음인 2번에 저장됩니다.
 하지만 c.txt가 513byte면 512byte를 초과하였기에 3번,4번에 저장됩니다.
==> 겨우 1byte 초과하였는데 512byte를 하나 더 사용하는 것은 낭비되는 것 아니냐구요?
 관리의 문제때문에 낭비되더라도 이렇게 사용하고 있습니다.


하드디스크를 포맷하는 과정이 File System을 구축하는 과정입니다. 즉 파일이 어떤 System에 저장되어 있는지 관리하는 것입니다.

4.자료형

정수형
byte(1)  :  -128 ~ +127
short(2) :  -32768 ~ +32767
int(4)    :  -42억 ~ +42억
long(8) :  -400경 ~ +400경

실수형
float(4)  :  유효자릿수 6자리
double(8): 유효자릿수 15자리

불린
boolean(1)

문자
char(2)  :  0~65535


*변수 선언 -> 메모리에 준비하라는 명령입니다.

*값의 표현(Literal) ->
int형 정수     : 10
long형 정수   : 10L,10l
float실수      : 10.0f, 10.0F


*Java에서는 10진수, 8진수, 16진수만을 사용합니다.(2진수 사용하지 않습니다)



5.문자인코딩방식의 종류







- AscⅡ방식은 영어를 포함한 128개 문자를 담았습니다.
- ISO-8859-1은 기존 AscⅡ방식에 프랑스어와 독일어를 포함한 서유럽언어를 지원합니다.
 8비트로서 256개의 문자를 포함합니다.
- EUC-KR은 2byte입니다. 국제표준이지만 한글을 2700자밖에 표현을 하질 못합니다.
- ms949는 microsoft에서 EUC-KR과 부족한 한글을 추가하여 11172까지 지원합니다.
(ms사에서 기존 EUC-KR을 쓰던 OS에서 확장하려는 OS에서도 호환이 가능하도록 만든 인코딩방식입니다.)
- Unicode는 국제표준입니다. 한글 한자당 2byte를 차지하고 모든 한글을 지원합니다. UTF-16이라고도 불립니다.
- UTF-8은 Unicode가 영어를 2byte로 만들어버리자 영어만 1byte로 표현하게끔 수정한 인코딩입니다.



아래는  Windows와 Java에서 사용되는 인코딩언어입니다.






댓글 없음:

댓글 쓰기