본문 바로가기
Java

[Java] 자바(Java)의 특징

by 하부루 2024. 6. 4.

1. 자바(Java)

Java는 1990년대 초 제임스 고슬링이 처음 개발

Java는 간단하고 휴대가능하며 안전하도록 설계되어 다양한 플랫폼에서 실행할 수 있는 애플리케이션 프로그래밍 언어

 

2. 자바(Java)의 특징

* 자바(Java)의 대표적인 특징 *

1. OOP(객체 지향 프로그래밍)

2. 플랫폼 독립성

3. 메모리 관리

4. 멀티 쓰레드 지원

5. 동적로딩 지원

 

2-1. OOP(객체 지향 프로그래밍)

  • 캡슐화(Encapsulation) : 캡슐화란 데이터와 메서드를 하나의 단위로 묶고 데이터를 보호
    • public : 모든 클래스에서 접근 가능
    • protected : 해당 객체를 상속받은 클래스에서 접근 가능
    • private : 클래스 내부에서만 접근 가능
    • default : 동일한 패키지 내에서만 접근 가능
  • 상속(Inheritance) : 부모 클래스의 변수와 메서드를 물려받아 재사용 하는 기능
    • 기존 코드를 재사용하여 중복 코드를 줄일 수 있다
    • Java의 최상위 클래스는 Object이다
    • 자바는 단일 상속만 지원한다
  • 추상화(Abstraction) : 세부 사항을 숨기고 중요한 기능만 노출하여 복잡성을 줄이는 기능
      • 객체에서 공통된 속성과 행위를 추출
      • 추상클래스, 인터페이스를 통해 구현된다
      • 추상 클래스(Abstract Class) : 하나 이상의 추상 메서드를 포함한 클래스
      • 인터페이스(Interface) : 모든 추상메서드를 포함한 클래스. 다중 상속 지원
  • 다형성(Polymorphism) : 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미
    • 오버로딩, 오버로딩으로 다형성 표현

 

2-2. 플랫폼 독립성

  • 어떠한 운영체제라도 독립적으로 자바언어를 사용할 수 있다
  • 그이유는 JVM이 Java Code를 Compiler하여 Byte 코드로 변환하여 컴퓨터에 전달

 

2-3. 메모리 관리

  • Java의 가비지 컬렉터는 더이상 사용되지 않는 객체를 제거하여 메모리 관리를 해준다.

 

2-4. 멀티 쓰레드 지원

  • Java는 하나의 프로그램에서 여러 개의 쓰레드를 동시에 실행 가능
  • 애플리케이션 성능과 효율성을 개선하는데 도움

 

2-5. 동적로딩 지원

  • 필요하지않는 객체는 생성되지 않고, 필요한 객체만 생성하여 사용한다
  • 유지보수에 도움