1. 프로그래밍 언어
- 프로그래밍 언어란 주어진 어떤 문제를 해결하기 위해 인간과 컴퓨터 사이에서 의사소통을 가능케 하는 인공적인 언어이다.
- 이 언어를 통하여 사용자는 컴퓨터에게 일련의 일을 시키는 명령어들의 집합체인 프로그램을 작성할 수 있다.
-> 컴퓨터에게 일을 시키기 위한 언어
1-1. 프로그래밍 언어의 종류
- 기계어 : 컴퓨터가 이해하는 언어로서, 2진수 집합으로 구성되어 있다.
- 고급언어 : 사람이 이해할 수 있는 수준의 언어. 기계어로 변환이 되어야만 프로그램 형태로 실행하는 것이 가능하다.
2. Java 언어의 특징
1) 운영체제에 대해 독립적이다.
내가 윈도우로 프로그램을 만들었을 경우에 Window, MacOS, Linux 각각 작성할 필요없이 잘 돌아감.
어떻게?-> JVM(Java Virtual Machine)이 설치된 환경이라면 어디서든지 실행 가능하다.
2) 객체지향 언어(Object-oriented programming)이다.
간단한 코드에서는 문제 없다. 하지만 수개월 이상 걸리는 매우 복잡한 코드를 짤 때, 코드를 덩어리로 묶어 놓으며 작업을 한다면 알아보기 좋으며, 에러가 있는 코드를 발견하기도 좋을 것이다. 이 외에도 상속, 캡슐화, 다형성 등의 방법으로 코드의 재사용과 유지보수에 용이하다.
3) 자동으로 메모리를 관리해준다.
Garbage collector가 위와 같은 기능을 한다.
3. Java 프로그램이 만들어지는 과정
- 소스코드(Source code, 고급언어, 확장자명 *.java ) ->
(컴파일) -> 바이트 코드(Byte code, 기계어, *.class)
- 컴파일(Compile) : 소스코드에서 바이트코드로 변환해주는 작업
- 컴파일러(Compiler) : 컴파일을 해주는 장치
4. Java 가상 머신 (JVM : Java Virtual Machine)
- 각 OS에 맞는 JVM만 설치 되어있으면 Source code file을 문제 없이 Compile 해서 Byte code를 만들 수 있음.
- Compil된 Java Byte code를 실행시켜 주는 소프트웨어
- Java 프로그램은 JVM이 설치된 환경이라면 운영체제나 하드웨어에 종속되지 않고 실행이 가능하다.
- 운영체제로부터 독립적이다.(라고 배웠는데 이건 아닌듯 : 이것을 다룬 글)
이게 참이라면 운영체제 별로 JVM을 알맞게 다운 받을 필요가 없지 않을까.