[JAVA] 언어적 특성

enyung·2022년 1월 3일

JAVA의 특징

  • 객체 지향 언어
    객체 지향 프로그래밍(Object Oriented Programming, OOP) - 객체를 먼저 만들어 전체 프로그램 완성
    캡슐화, 상속, 다형성 지원

객체 지향 프로그래밍의 주요 특징

  • 캡슐화 (Encapsulation) (정보은닉)
    • 변수나 메소드는 클래스 내에 구현
    • 높은 응집도와 낮은 결합도 유지 - 요구사항 변경 시 유연하게 대처 가능
  • 상속
    • 자식 클래스가 부모 클래스의 특성과 기능 물려받음
    • 기능의 일부분 변경 가능
    • 캡슐화 유지, 클래스 재사용 용의
  • 추상화
    • 인터페이스로 클래스들의 공통적인 특성(변수, 메소드) 들을 묶어 표현
  • 다형성
    • 서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작 (상황에 따라 다른 동작, 다른 결과)
    • 오버로딩: 하나의 클래스에서 메소드 이름이 같지만, parameter 다름
    • 오버라이딩: 부모 클래스의 메소드를 자식 클래스의 용도에 맞게 재정의
  • 높은 이식성
    플랫폼에 종속되지 않는 독립적인 바이트 코드로 컴파일되며 JVM만 있으면 실행이 가능하기 때문에 자바 실행 환경(FRE)가 설치되어 있는 모든 운영체제에서 실행 가능 (운영체제에 독립적)

  • 메모리 자동 관리
    개발자가 직접 메모리에 접근할 수 없으며 자바가 직접 메모리 관리
    JVM을 통해 객체를 생성할 때 자동적으로 메모리 영역을 찾아서 할당하고 프로그램 내에 사용되지 않는 메모리(Garbage)는 Garbage Collection 기능을 통해 자동으로 회수

  • 멀티 스레드
    하나의 자바 프로그램이 다수의 작업을 처리할 수 있도록 운영체제의 도움 없이 자체적으로 멀티스레드와 관련된 API나 라이브러리 제공

  • 동적 로딩 (Dynamic Loading)
    애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 각 객체가 필요한 시점에서 클래스를 동적 로딩해서 생성
    유지보수 측면에서 해당 클래스만 수정하면 되기 때문에 전체 애플리케이션을 다시 컴파일 할 필요가 없어서 유지보수가 쉽고 빠름

  • 오픈 소스 라이브러리 풍부
    개발 시간을 단축하여 안정성 높은 애플리케이션 개발 가능

0개의 댓글