이론

Dec 11, 2023
이론
컴파일- 컴퓨터가 이해할 수 있는 언어
저장시에 .class는 javac.exe로 저장 되고 실행을 java로 compile - build
한마디로 영어로 된 언어를 기계어로 바꿔주는 역할을 하는것이 자바툴
하드웨어에 자료가 들어가면 자료는 항상 2진수로 들어간다
이것을 input이라고 하는데
그렇지만 실제로 2진수로 자료를 input 할 수가 없기 때문에
OS에서 장치를 통해(키보드, 마우스) 아무 언어를 입력하면 2진수로 변환 시켜서 하드웨어에 저장한다.
SHELL 명령어 - cd(change direction)
.java(인간) -> class(가상머신)
가상머신(JVM = JAVA VIRTURE MACHINE)이 .class를 받고 각 운영체제(windows, mac, 리눅스)에 맞게 변형시켜서 바꿔준다
그리고 최종적으로 하드웨어에 입력된다.
자바는 하이브리드 언어, 파이썬은 인터프리터만 실행
  1. 컴파일(CLASS 파일로 변환 - jvm에 해석) : ex) 통역가, 미국인, 한국인 의 구조에서 안녕을 통역가가 hello로 변환 대본을 미리 받아서 작업을 한 후 바로번역 -->>> 사전에 작업을 해놓고 통번역을 하는 것을 컴파일
  1. 인터프리터 ex) 통역가가 즉시 번역을함
  • ->>> 실시간으로 번역을하는 것을 인터프리터 한 줄읽고 실행
 

바이트코드

[ bytecode ]
자바 프로그램의 컴파일된 형태. 일단 자바 프로그램이 바이트코드로 변환되면 네트워크를 통해 전송될 수도 있고 JVM(자바 가상 머신)에 의해 실행될 수도 있다. 그러나 자바 컴파일러는 각 플랫폼에 독립적인 바이트코드를 표현하는 데 제약을 받기 때문에 효율적인 코드를 생성하는데 한계가 있다. 따라서 바이트코드가 네트워크와 같은 실행 환경에서 효과적으로 실행하려면 효율적인 코드에 대한 변환이 요구된다. 확장자는 .Class이다.
\
 
 

2진수

도체 - 전류가 흐르는 물건 부도체 - 전류가 흐르지 않는 물건
디지털 신호로 1(흐르는 것) 0(흐르지 않는것)
 
1비트 - 2가지 경우의 수
2비트 - 4가지 경우의 수
3비트 - 8가지의 경우의 수
8비트 - 256가지의 경우의 수
.
.
.
64비트 - 2의 64승 가지의 경우의 수
>>비트를 계속 늘려서 경우의 수를 늘리더라도 모든 경우의 수를 담을 수 없다!!
 
8비트 통신(8비트표를 만든다) > 256가지 경우의 수 > 문자 1개 표현(1byte) > 이 기능을 여러번 수행하면 문장이 된다 > 아스키코드 표(전 세계적으로 공유하는 코드표)
 
A >>>>>>>>>>>>> B
 
인코딩 - ~코드로 변형된 코드 ex)코드를 입력하고 컴퓨터에게 ???코드를 실행시키게 만드는 것
a를 기계어로 바꾸는 것
디코딩 - 기계어를 다시 a로 바꾸는것
ex)
  1. java > a=아스키코드
  1. jum
  1. os os - 2
  1. hw >>>>>> a(아스키코드) >>>>>>> hw(디코딩) -1
 
 
CPU - 연산장치
RAM - 저장장치(휘발성) 공간 하나에 8Bit(1byte)의 저장소가 들어가고
ex) 20억개 byte 20억개의 문자를 입력할 수 있음
 
8bit > 1byte
1000Byte > 1KB
1000Kb> 1MB(100만byte)
1000Mb> 1GB(10억byte) >>>> 16GB(160억Byte)
1000GB> 1TB
 
하드디스크(비휘발성)
 
I/O - INPUT/OUTPUT 컴퓨터에서의 속도를 좌우함 I/O를 줄이는 것이 코딩의 핵심(기본기 중의 기본기)
 
CPU의 역할은 연산
메모리(RAM)에서 자료를 가져와서 연산을 처리 후 RAM으로 돌려보냄
RAM(휘발성)에서 돌려보낸 자료는 레지스터에 저장 후 연산을 처리한다
용량이 큰 곳은 하드디스크(비휘발성)에 따로 저장
필요한 정보를 하드디스크에서 램으로 가져오는 것을 LOAD(로드)라고 한다.
램의 크기가 클 수록 하드디스크에서 가져 올 수 있는 데이터의 스왑이 빨라짐
 
 
int = 4byte - 숫자 42억까지의 숫자를 저장 가능
1byte = 8bit 인 이유
영문자(대, 소문자) + 0~9 + 특수문자 = 대략 122개 정도 (2의 7승개)
2의 7승에 오류검출 1bit를 추가해서 2의 8승을 1byte로 정하였다.
1byte는 하나의 문자를 표현할 수 있다.
1KB는 1,000개, 1MB는 1,000,000개, 1GB는 1,000,000,000개의 문자를 표현할 수 있다.
1byte = 8bit 는 2의 8승(256)가지의 경우의 수를 표현할 수 있다.
 
int(타입) num(변수) =(대입연산자) n(값) ;
 
notion image
 
Share article

RottenYogurt's Development Blog