IT/Java

[1] Java 란? 2_자바의 특징

Lyk 2020. 12. 30. 21:13
728x90
반응형

이식성이 높은 언어

자바 실행 환경(JRE : Java Runtime Environment)이 설치되어 있는

모든 운영체제에서 실행 가능

절차 지향 언어와 달리 호환성이 좋다.

※ JVM (Java Virtual Machine) : 자바 가상 기계

JVM


객체 지향 언어

(OOP : Object Oriented Programming)

객체를 먼저 만들고, 이것들을 조합해서 전체 프로그램을 완성하는 방법

자바는 100% 객체 지향 언어

코드 재사용 용이, 디버깅 용이

유지보수 비용↓

C++, VC++ 보다 더 완벽한 객체지향 언어!

main이라는 함수로 실행

Java, C#은 처음부터 클래스로 실행


함수적 스타일 코딩을 지원

(C언어와 같은 절차 지향적 코딩)

때로는 함수적 코딩이 더 효율적인 경우도 있어서!

자바 8부터 람다식(Lambda Expressions)을 지원

컬렉션의 요소를 필터링, 매핑, 집계 처리가 쉽고, 코드가 매운 간결


메모리를 자동으로 관리

개발자가 직접 메모리에 접근할 수 없도록 설계

자바가 직접 메모리 관리

객체 생성 시 자동적으로 메모리 영역을 찾아서 할당

사용이 완료되면 쓰레기 수집기(Garbage Collector [가비지 컬렉터])

실행시켜 자동으로 사용하지 않는 객체를 제거


다양한 어플리케이션 개발

다양한 운영체제(OS : Operating System)에서 실행되는 프로그램을 개발

콘솔 프로그램, 윈도우 애플리케이션(UI 애플리케이션), 서버용 웹 애플리케이션, 모바일용 안드로이드 앱 등...

다양한 애플리케이션을 위한 개발도구와 API를 에디션 형태로 구분

  1. Java SE (Standard Edition) - 기본 에디션
    • 자바 가상 기계(JVM : Java Virtual Machine)을 비롯한 필수 도구, 라이브러리 API 정의
    • 반드시 자바 개발 키트(JDK : Java Development Kit) 설치
    • 구현체 종류
      • JDK : JRE + 컴파일러 등의 개발 도구 (자바 프로그램을 개발하고 실행할 경우)
      • JRE : JVM + 표준 클래스 라이브러리 (자바 프로그램을 실행만 할 경우)
  2. Java EE (Enterprise Edition) - 서버용 애플리케이션 개발 에디션
    • 분산 환경(네트워크, 인터넷)에서 서버용 애플리케이션 개발을 위한 도구, 라이브러리 API 정의
    • 서버용 애플리케이션으로는 Servlet/JSP를 이용한 웹 애플리케이션, 분산 처리 컴포넌트(EJB : Enterprise Java Bean), XML 웹 서비스(Web Services) 등...
    • 구현체 : WAS(Web Application Server) -> Tomcat, WebLogin, Jeus, Jboss ...
  3. Java ME (Micro Editon)
    • 임베디드 또는 모바일 장비를 위한 개발도구와 API 정의

멀티 스레드(Multi-Thread) 쉽게 구현

멀티 스레드 프로그래밍

→ 동시에 여러 가지 작업을 처리해야 할 경우, 대용량 작업을 분리해 병렬 처리

스레드 생성 및 제어와 관련된 라이브러리 API 제공

→운영체제와 상관 없이 멀티 스레드를 쉽게 구현

(원래는 운영체제에 따라서 멀티 스레드를 구현하는 방법이 다름)


동적 로딩(Dynamic Loading)을 지원

애플리케이션이 실행될 때 모든 객체가 생성되는 것이 아닌

객체가 필요한 시점에 클래스를 동적 로딩해서 객체를 생성

유지 보수(수정)가 발생하더라도 해당 클래스만 수정 및 교체하면 되므로

전체 애플리케이션을 다시 컴파일 할 필요가 없다.


막강한 오픈소스 라이브러리가 풍부

오픈 소스(Open Source) 언어

막강하고 풍부한 자바 오픈 소스 라이브러리 제공

검증된 오픈소스 라이브러리를 사용하면 개발기간 단축 가능

노력↓, 시간↓, 유지보수 편리성↑

 

참고

표준 클래스 라이브러리(API : Application Programming Interface)

주소 : http://docs/oracle.com/javase/(사용할버전)/docs/api/


 

 

728x90
반응형