자바는 썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어다!
처음에는 C++의 장점을 도입하며 단점을 보완할 목적으로 오크(Oak)라는 이름으로 시작했지만 인터넷 환경에 더욱 적합하도록 개발방향을 바꾸면서 이름을 JAVA로 변경했다. (몰랐는데 java는 커피의 한 종류라고 한다. 나처럼 커피 중독자인듯..ㅎ(´▽`))
원래라면 어떠한 언어로 코딩한 후 기계어로 번역(=컴파일)을 하면 해당 플랫폼에서만 실행이 되었다.
즉, 윈도우에서 작성한 파일은 윈도우에서만, 리눅스에서 작성한 파일은 리눅스에서만 실행이 된 것이다. 다른 운영체제에서 실행을 하려면 그 운영체제에 맞게 새로 실행파일을 만들어야만 했다.
하지만 자바는 이러한 문제가 발생하지 않는다.
그 이유는 바로 자바가상머신(JVM)덕분이다.
각 운영체제에 설치되어있는 자바가상머신은 해당 운영체제에 맞게 실행파일을 알맞게 바꾸어주는 역할을 한다. 때문에 우리가 번거롭게 컴파일을 할 필요가 없다.
하지만 다른 언어와 달리 자바는 컴파일하거나 실행될 때 JVM을 한 번 거치기 때문에 다른 언어에 비해서 조금 느리다는 단점이 있다.
이 특징으로 인해 코드를 클래스와 객체의 형태로 수정하고, 보수하는데에 좋다. 사실 아직 '객체지향'이라는 것을 완벽하게 이해하지 못했다.. 하지만 자바와 다른 것들을 공부하면 이해되지 않을까 싶다.
코드를 작성 ( .java ) ->
작성된 코드 컴파일 ->
클래스 파일 생성 ( .class ) ->
실행하면 클래스파일이 JVM에 올라가며 코드의 내용을 출력함
class CupCake {
public static void main(String[] args) {
System.out.println("Hello, World~ I love CupCake!");
}
}
메모장을 켜서 위 코드를 입력한 후 CupCake 이름으로 저장한다.
이때 중요한 것은 파일 이름의 확장명을 CupCake.java로 하여 저장해해야하는 것이다. 또한 소스파일의 이름과 클래스명 (= CupCake)와 대소문자까지 완벽하게 동일한지 체크해준다.
위 java파일이 있는 폴더위치에서 cmd를 실행시킨다.
( 파일 탐색기에서 소스파일이 들어있는 폴더까지 들어가서 위쪽 파일 위치가 나타나는 부분에서 cmd를 치면 해당 폴더위치에서 실행된다.)

실행된 cmd에서
javac CupCake.java
java CupCake
위 두 문장을 차례로 입력하면
Hello, World~ I love CupCake!
우리가 작성한 문장이 출력된다.

또한 실행 후 파일 탐색기를 보면 우리가 java파일만 생성했음에도 컴파일되어 class파일이 자동으로 생성된 것을 볼 수 있다.
중요한건 .java --컴파일--> .class