JVM
을 사용하니까.자바는 왜 많이 쓰이게 되었을까?
Java는 오픈소스 기반이고, 플랫폼의 독립적인 언어다.
Linux 기반 C언어와, Windows 기반 C언어는 각각 다르다. 그래서 같은 C언어라도 OS에 맞게 싸로 사용이 되었다. 하지만 플랫폼에 독립적인 Java는 Linux, Windows 어디서든 사용 가능하게 되었다.
그 말은 즉, 오픈소스 ⇨ 비용 안들음 ⇨ 공공기관에서 사용하기 좋음 ⇨ 공공기관이 사용하는 프레임워크의 기반이 java로 제작됨 ⇨ java의 활성화!
JVM
java 진영에서 메모리 관리를 해준다 (씨언어는 개발자가 직접 해야했음)
- 메모리관리란? 개발자가 사용하지않는 쓸모 없는 메모리를 가상머신이 알아서 수거해간다.
- 단, 메모리 관리를 잘 되기 위해서는 개발자가 코딩을 깔끔하게 해야한다.
Java 플랫폼
(개발자입장에서의) 플랫폼이란, 운영체제/어플리케이션이 실행될 수 있는 환경
- 구성 = JVM + API(라이브러리)
- JDK = JVM + API + 여러 응용프로그램
- Java platform의 종류
- Java SE(Standard Edition) : UI 프로그램, Network 프로그램, 입출력 프로그램, JDBC 프로그램 까지는 할 수 있다.
- Java EE(Enterprise Edition) : 자바 기반의 웹프로그램, EJB프로그램
- Java MF(Micro ition) : 모바일 프로그래밍
처럼, 용도에 따라, 필요에 맞는 api가 따로 있다.
Java API
String, System 등, 내가 만들지 않고 자바에서 제공해주는 라이브러리인 java api 를 사용한다.
C언어의 경우,
A.c
언어를 컴파일하면A.obj
파일에 나온다. 그럼 윈도우즈 OS가 이해할 수 있고 알아들을 수 있는 obj 파일이 나오게되고 윈도우즈에서는 실행이 잘 된다.
하지만 이 obj 파일을 linux os 에서 복사해서 실행하게되면 실행이 되지 않는다.
왜냐하면 그 obj 안에 있는 1000101010은 윈도우즈가 알아들을 수 있는 0과 1이기 때문이다.
⇨ 따라서 C언어 같은 언어를 플랫폼에 종속적
이라고 표현한다.
자바의 경우,
윈도우즈 os에서 A.java
소스코드를 컴파일하면 A.class
의 byte단위로 저장된 파일이 나오게 되고, 그 컴파일된 파일을 실행을 하게되면 윈도우즈 os가 이해하게끔 해석이 된다. 그러면서 00101011101로 바뀌며 실행이된다.
리눅스에 윈도우즈에서 컴파일한 파일인 A.class
파일을 복사해서 리눅스에서 실행을 하면, 리눅스가 이해할 수 있는 언어로 해석이 되면서 잘 실행이 된다.
이 해석을 누가하느냐? 바로 JVM 이 하게된다. (각 os가 이해할 수 있도록 해석해주는 역할)
따라서,
- JVM이 무조건 설치가 되어있어야 실행이되고
- 컴파일러 같은 응용프로그램이 설치 되어있어야한다.
(참고로 JDK는 컴파일러와 JVM이 포함되어있어서 JDK를 설치하면된다.)- 컴파일 후, JVM의 해석을 한번 더 거치기 때문에 C언어에 비해 Java는 실행 속도가 느리다는 특징이 있다.
(자바로는 게임프로그램을 만들지 않는다. 느리기 때문에!)
main method는, 자바로 클레스를 실행하면 자동 실행된다.
{ main method 중활호 안의 내용을 실행합니다~ }
가장 먼저 호출되는 method
C:\Users\KOSTA>cd C:\Program Files\Java\jdk-11.0.16.1\bin>javac
C:\Program Files\Java\jdk-11.0.16.1\bin>javac
경로 + >javac 쳐주면 컴파일됨
C:\Program Files\Java\jdk-11.0.16.1\bin>javac -d D:\ D:\255\myJAVA\basic\src\First.java
-> 가장 상위폴더에 .class파일 저장
C:\Program Files\Java\jdk-11.0.16.1\bin>javac -d D:\255\myJAVA\basic\bin D:\255\myJAVA\basic\src\First.java
-> -d 뒤에 저장경로 D:\255\myJAVA\basic\bin 넣고 컴파일하는 파일 경로 넣으면
.class 파일이 원하는 저장 경로에 저장됨
다 지우려면 cls
컴파일 명령어 javac
C:\Program Files\Java\jdk-11.0.16.1\bin>java -cp D:\255\myJAVA\basic\bin First
song's first application
소스코드 보면, main method의 내용을 보면 sout("song's first application");을 프린트해라.
sout은 println method를 호출하는 역할을 한다. println method는 콘솔창에 method를 출력해준다.
ln 은 line은 약어이다. 즉, line까지 포함하여 출력해서, 그 줄을 다 먹는다. 그래서 여러번하면 한줄, 그 다음 한줄로 출력된다.
print("")로 하면 줄바꿈 없이 출력해준다.
자바의 특징 정리한거 잘 읽고 갑니다!!
제가 했던 C와 비교해 놓아 이해가 잘 됐습니다~
하지만!!
Java로 만든 게임도 있답니다~ 대표적으로
Minecraft - java edition
이 있지요!!연산자는 알고리즘 계속 풀면 익숙해 질 것 같아요~
오늘 첫 교육 듣고 오느라 고생했습니다! 👊👊