티스토리 뷰
컴퓨터 공학에서 '기계'란 'CPU'를 말한다.
따라서 '기계어'란 'CPU가 알아들을 수 있는 언어'를 의미한다.
계산은 cpu가 한다.(뇌 = cpu)
컴파일을 하면 기계어로 변환되어지는데.
기계어는 사람이 읽을 수 없기때문에
기계화 직전에 기계어와 매핑되어 사람이 읽을 수 있는 코드화 체계로 만들어진 어셈블 코드로 변한다.
그 후에 완전한 기계어가 만들어진다. (어셈블코드 ≒ 기계어 라고 할 수 있다.)
어셈블코드의 한 row line하나가 command라고 하는데 이것은 cpu command로써 cpu에게 명령하는 명령단위이다.
컴파일이란 사람이 만들어 놓은 코드를 (어셈블 코드로 만들고, 이것을) cpu가 알아들을 수 있는 명령어의 집합. 즉, 기계어로 만드는 것을 말한다.
흔히 사람들이 말하는 컴파일러x2 는 c++ 컴파일러를 말하고 그 컴파일 명령어는 g++를 사용한다.
<c컴파일러>의 최종 목적은 기계어.
컴파일러의 주된 기능은 인간의 코드를 기계어로 바꿔주는 것이다.
그 단계가 몇가지 있는데 가장 중요한 단계가 문법오류를 체크하는 것이다.
but
<자바 컴파일러>란 자바소스를 바이트코드로 바꿔주는 것이 자바컴파일러이다.
컴파일한 결과로 기계어로 만들어진 ~.exe파일이 생긴다.기계어~exe는 그 스스로 실행이 된다.
하지만 자바바이트 코드는 이미 기계어로 만들어진 java.exe 프로그램 위에 올라간것 java.exe가 먼저 실행 되고 그 위에 자바 컴파일 된 결과(~.class)
가 실행된다.
자바 클래스는 jvm에 의해서만 구동 될 수 있다. java.exe없이는~.class가 작동 될 수 없다.
<jdk가 컴파일(명령어 javac)을 하고 난 후 런타임시에 jvm이 클래스를 구동시켜주는 것이다.>
<c컴파일은>
따라서 '기계어'란 'CPU가 알아들을 수 있는 언어'를 의미한다.
계산은 cpu가 한다.(뇌 = cpu)
컴파일을 하면 기계어로 변환되어지는데.
기계어는 사람이 읽을 수 없기때문에
기계화 직전에 기계어와 매핑되어 사람이 읽을 수 있는 코드화 체계로 만들어진 어셈블 코드로 변한다.
그 후에 완전한 기계어가 만들어진다. (어셈블코드 ≒ 기계어 라고 할 수 있다.)
어셈블코드의 한 row line하나가 command라고 하는데 이것은 cpu command로써 cpu에게 명령하는 명령단위이다.
컴파일이란 사람이 만들어 놓은 코드를 (어셈블 코드로 만들고, 이것을) cpu가 알아들을 수 있는 명령어의 집합. 즉, 기계어로 만드는 것을 말한다.
흔히 사람들이 말하는 컴파일러x2 는 c++ 컴파일러를 말하고 그 컴파일 명령어는 g++를 사용한다.
<c컴파일러>의 최종 목적은 기계어.
컴파일러의 주된 기능은 인간의 코드를 기계어로 바꿔주는 것이다.
그 단계가 몇가지 있는데 가장 중요한 단계가 문법오류를 체크하는 것이다.
but
<자바 컴파일러>란 자바소스를 바이트코드로 바꿔주는 것이 자바컴파일러이다.
컴파일한 결과로 기계어로 만들어진 ~.exe파일이 생긴다.기계어~exe는 그 스스로 실행이 된다.
하지만 자바바이트 코드는 이미 기계어로 만들어진 java.exe 프로그램 위에 올라간것 java.exe가 먼저 실행 되고 그 위에 자바 컴파일 된 결과(~.class)
가 실행된다.
자바 클래스는 jvm에 의해서만 구동 될 수 있다. java.exe없이는~.class가 작동 될 수 없다.
<jdk가 컴파일(명령어 javac)을 하고 난 후 런타임시에 jvm이 클래스를 구동시켜주는 것이다.>
<c컴파일은>
윈도우즈에서 컴파일한것이 리눅스에서 돌아갈 수 없고, 그 반대도 불가능하다. ios에도 불가능하고.. 각각의 기계들의 cpu가 인식하는 명령어의 체계가 다르기 때문이다.
하나의 같은 결과를 위해 각 플랫폼 cpu 환경에 따라 다른 컴파일 코드 작업이 들어간다.
하지만
<자바 컴파일은>
이러한 다양한 cpu의 종속성에서 벗어나기 위해 jvm(가상cpu)을 사용해 계산을 하는 것이다.
하지만
<자바 컴파일은>
이러한 다양한 cpu의 종속성에서 벗어나기 위해 jvm(가상cpu)을 사용해 계산을 하는 것이다.
JDK : Java (sw)Development Kit
JRE : Java Runtime Enviornment
플래스 sdk = (sdk는 소프트웨어 디벨럽먼트 키트, sw개발 툴. 개발하기 위한 도구)
자바sdk = jdk(자바 개발툴)
톰캣은 독자적으로 돌아가는 것으로 이클립스는 단지 개발 도구에 불과하다.
이클립스는 톰캣에 위에 올라가는 웹어플리케이션을 개발하기 쉽게 해주는 툴이다.
톰캣은 톰캣 위에 올라가는 웹어플리케이션을 돌아가게 해주는 것.
<자바 파일이 실행 되기까지...>
=>자바파일이 jdk에 의해 컴파일 된다. jdk는 javac를 말한다.즉 컴파일러.
=> 컴파일을 하고 나면 바이트 코드라는 것이 만들어진다.이 바이트 코드는 클래스를 의미하고 컴파일의 결과로 .java라는 클래스 파일이 만들어진다.(컴파일의 결과)
=> 이 클래스는 JVM위에서 돌아간다. JVM은 java.exe를 말한다. 즉,jre(java.exe)는 컴파일된 클래스 소스를 실행시켜준다.
'Java' 카테고리의 다른 글
Array와 List (0) | 2018.11.19 |
---|---|
switch case문, 다양한 for문 (java의 iterator for문) (0) | 2018.11.19 |
바이트, 비트 연산(쉬프트 연산, 2의 보수 처리 등) (0) | 2018.11.19 |
객체, Class, Instance (0) | 2018.11.19 |
변수의 두 종류 Primitive변수와 Object변수 (0) | 2018.11.19 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 웹서버설치
- apache tomcat 설정
- 알고리즘
- hot swapping
- spring loaded
- compileOnly
- gradle 종속성
- 활성화된 파일 위치 찾기
- Spring Security
- DB 툴
- login page
- 이데일리 코딩 챌린지
- SQL 개발툴
- eclipse disable welcome page
- Autoscroll from Source
- springboot에서 jsp호출
- tomcat 환경변수
- Apache설치
- 기초입문
- 패키지 위치 찾기
- spring 기본 login
- webprogramming
- mysql 연동
- 라이브러리 종속성
- runtimeOnly
- EDAILY CODING CHALLENGE
- Encoding UTF-8
- 나눔고딕코딩
- java
- Whitelabel Error Page(404 Not Found)에러
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함