1 분 소요

Java 의 기본 공부

Java SE와 Java EE 애플리케이션 차이

모든 자바 플랫폼들은 자바 가상 머신(JVM)과 어플리케이션 프로그래밍 인터페이스(API)들로 구성되어 있습니다.

Java SE (Java Standard Edition)

  • 가장 기본이 되는 표준 에디션인 자바 플랫폼이다. 보통 JavaSE Development Kit, 줄여서 JDK를 설치 받아서 사용할 수 있다.
  • 주요 패키지로는 java.lang., java.io., java.util., java.awt., javax.rmi., javax.net. 등이 있습니다.

**Java EE (Enterprise Edition)**

  • Java EE 플랫폼은 Java SE 플랫폼을 기반으로 그 위에 탑재된다.
  • JSP, Servlet 등 웹 프로그래밍에 필요한 기능을 다수 포함

Java와 c/c++의 차이

  • java와 c/c++의 가장 큰 차이점은 실행 환경입니다.
  • 자바는 링크 과정이 없습니다.
    • 컴파일하면 JVM에서 실행가능한 바이트코드 형태의 클래스 파일이 생성되고, JVM을 통해 실행할 수 있다.
  • c/c++에서는 컴파일 단계와 링크 단계를 거칩니다.
    • c/c++ 은 소스를 컴파일 하여 Object code 를 생성하고 그 Object code 를 최종 실행 가능한 실행파일(.exe) 만들기 위해 연결 ,병합 해주는 작업인 링크 과정을 거쳐 실행파일이 됩니다.

[컴파일]

  • 작성된 소스코드들을 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업

[링크]

  • 여러개로 분리된 소스파일들을 최종 실행 가능한 파일을 만들기 위해 서로 연결해주는 작업

Java의 장단점

  • 장점
    • 운영체제에 독립적이다.
      • JVM에서 동작하기 때문에, 특정 운영체제에 종속되지 않는다.
    • 객체지향 언어이다.
    • 자동으로 메모리 관리를 해준다.
      • JVM에서 Garbage Collector라고 불리는 데몬 쓰레드에 의해 GC(Garbage Collection)가 일어난다. GC로 인해 별도의 메모리 관리가 필요 없으며 비지니스 로직에 집중할 수 있다.
    • 오픈소스이다.
    • 멀티스레드를 쉽게 구현할 수 있다.
      • 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있기 때문에 실행되는 운영체제에 상관없이 멀티 스레드를 쉽게 구현할 수 있다.
    • 동적 로딩(Dynamic Loading)을 지원한다
      • 애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 각 객체가 필요한 시점에 클래스를 동적 로딩해서 생성한다. 또한 유지보수 시 해당 클래스만 수정하면 되기 때문에 전체 애플리케이션을 다시 컴파일할 필요가 없다. 따라서 유지보수가 쉽고 빠르다.
  • 단점
    • 비교적 속도가 느리다.
      • 자바는 한 번의 컴파일링으로 실행 가능한 기계어가 만들어지지 않고 JVM에 의해 기계어로 번역되고 실행하는 과정을 거치기 때문에 C나 C++의 컴파일 단계에서 만들어지는 완전한 기계어보다는 속도가 느리다.
    • 예외처리가 불편하다.
      • 자바는 다른 언어들과 달리 프로그램 실행 시 발생할 수 있는 예외(Exception)들을 개발자가 직접 선언하여 처리해야 한다. 그렇지 않으면 아예 컴파일이 되지 않는다.

태그:

카테고리:

업데이트: