Intro .Java

목차


Write once, *
*Run anywhere.


Java의 특징

  • Java는 ‘Java의 아버지’로 불리우는 James Gosling가 1995년, Sun Microsystems.Inc,(이하 Sun)에서 다른 연구원들과 함께 개발한 프로그래밍 언어이다. 1995년에 Java 1.0을 발표했다.
  • 2009년 Oracle이 Sun을 56억불에 Oracle에 인수하면서 모든 권리가 Oracle로 이전되었다.
  • Java는 객체지향언어(Object Oriented Language)1이다.
  • Java가 등정하기 이전의 객체지향언어인 C++ 문법을 기본으로 개발되었다.
  • Java가 다른 언어와 다른 가장 큰 특징은 JVM2 위에서 작동되기 때문에 플랫폼 독립적3 이라는 점이다. HW에 맞게 완전하게 컴파일된 상태가 아니라 실행 시에 해석(Interpreter)되기 때문에 속도가 느리다는 단점을 가지고 있었다. 그러나 최근엔 JIT 컴파일러와 최적화된 기술로 인해 속도의 격차가 크게 줄었다.
  • Java는 C/C++와 달리 메모리를 자동으로 관리해준다. Garbage Collector(이하 GC)가 사용하지 않는 메모리를 자동으로 정리해준다.

Java의 철학

  • 객체 지향 방법론1을 사용해야 한다.
  • 프로그램(바이트 코드)가 여러 운영체제에서 실행될 수 있어야 한다. (플랫폼 독립성3)
  • 컴퓨터 네트워크 접근 기능이 기본으로 탑재되어 있어야 한다.
  • 원격 코드를 안전하게 실행할 수 있어야 한다.
  • 다른 객체 지향 언어들의 좋은 부분만 가지고 와서 사용하기 편해야 한다.

정리하면..

  1. Java는 객체지향언어1이다.
  2. 애플리케이션이 운영체제에 직접 실행되지 않고, JVM을 거치기 때문에 어떤 운영체제에서든 실행할 수 있다는 장점(플랫폼 독립성3)이 있다.
  3. 수동으로 메모리를 관리하는 C/C++와 달리 Java에는 Garbage Collector가 있어서 GC가 자동으로 메모리를 관리해준다.


1 객체지향 언어 (Object Oriented Programming) : 말 그대로 객체지향은 객체를 만드는 일이다. 현실 세계에 있는 것들을 프로그래밍화 한다고 할 수 있다. 더 자세히는 프로그램의 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다. 반복되는 구문을 객체화하여 작성하는 프로그래밍 기법이다. = Modularization or Encapsulation

2 JVM (Java Virtual Machine) : 컴파일된 소스코드인 바이트 코드를 운영체제에서 실행시키기 위한 가상의 기계. Java로 작성된 프로그램은 반드시 JVM에서 실행되어야만 한다.

3 플랫폼 독립적 : 바이트 코드가 JVM에 의해서 실행되기 때문에 특정 운영체제에 종속되지 않고, 같은 바이트 코드로 여러 운영체제에서 실행할 수 있다는 장점이 있다. Java 프로그램은 운영체제에 종속되지 않지만, 대신 JVM을 운영체제에 맞게 설치해야 한다.