자바 5

のの·2020년 12월 25일

### 자바 5


  • 제네릭
    • 자바 5의 가장 중요한 신규 기능이다. 제네릭을 이용해서 기존의 컬렉션 프레임워크를 이용했을 때 발생할 수 있는 ClassCastException을 컴파일 시간에 검증할 수 있다. 이러한 컴파일 검증 기능뿐만 아니라 코드에 대한 데이터를 명확하게 해서 가독성을 높이는 결과도 가져왔다.
  • for 루프 개선

    • 이전까지는 루프를 실행하기 위한 인덱스 변수를 생성해서 기계적으로 값을 늘리거나 iterator 인터페이스를 이용하였지만, for each 구문을 사용하면 그러한 번거로움 없이 for 루프를 구현할 수 있다.
      for each를 사용하기 위해서는 데이터 타입이 명확해야 하는 제약이 있어서 제네릭을 사용하거나 형이 명확한 배열을 이용해야 한다.
  • Concurrent API

    • 병렬 프로그래밍 혹은 멀티 스레드 프로그래밍을 위해서는 자바 스레드 구조에 대한 해박한 지식을 기반으로 저수준의 프로그래밍을 해야한다. 하지만 Concurrent API를 이용하면 비교적 손쉽게 병렬 프로그래밍을 구현할 수 있으며 스레드의 라이프사이클을 관리할 수 있다.
  • Annotation

    • 어노테이션 이용하면 간단한 선언만으로도 메서드나 변수의 행동을 정의할 수 있다. 특히 많이 사용되고 있는 스프링 프레임워크는 어노테이션을 이용한 대표적인 예이다. 이외에도 다양한 개발 프레임워크와 테스트 도구 등에서 어노테이션을 이용해서 개발을 지원하고 있다.
  • Enum

    • 자바 개발자들은 데이터 구조를 좀 더 손쉽게 사용할 수 있는 열거형 기능을 원했고 자바 5에서 추가되었다. 이를 이용해 클래스, 인터페이스, 열거형으로 소스 코드를 작성할 수 있게 되었다.
  • vararg

    • 메서드의 입력 파라미터를 유연하게 가져갈 수 있도록 기능이 추가되었다. 이전까지는 원하는 파라미터 개수만큼 메서드에 모두 기술해야 했지만 vararg 기능이 추가된 이후 데이터 타입만 선언하면 복수의 파라미터를 전달할 수 있게 되었다.
  • 오토 박싱/언박싱
    - 자바는 객체 지향 언어를 지향하고 있어서 모든 데이터를 객체화 하지만 예외적으로 기본형인 int, float, long, double 등을 제공하고 있다. 하지만 기본형 타입을 컬렉션에서 활용하거나 제네릭으로 선언해서 사용하기 위해서는 이와 연관된 래퍼 클래스인 Integer, Double 등을 별도로 선언해서 만들어야 했다. 자바 5에서는 오토 박싱/언박싱 기능을 통해 개발자가 기본형 데이터를 래퍼 클래스로 직접 변환하지 않아도 언어 차원에서 자동 변환이 가능하도록 보강되었다.


profile
wannabe developer

0개의 댓글