자바와 코틀린 비교
코틀린에서 해결된 자바의 일부 문제점
코틀린은 자바가 겪는 여러 문제점을 해결합니다:
- 널 참조는 타입 시스템으로 제어됩니다.
- 원시 타입 없음
- 코틀린의 배열은 불변입니다.
- 코틀린은 자바의 SAM 변환과 달리 제대로 된 함수 타입을 가집니다.
- 와일드카드 없이 사용-지점 변성을 지원합니다.
- 코틀린은 검사 예외를 지원하지 않습니다.
- 읽기 전용 및 가변 컬렉션을 위한 별도의 인터페이스를 제공합니다.
자바에 있지만 코틀린에 없는 기능
- 검사 예외
- 클래스가 아닌 원시 타입. 바이트코드는 가능한 경우 원시 타입을 사용하지만, 명시적으로 사용할 수는 없습니다.
- 정적 멤버는 동반 객체, 최상위 함수, 확장 함수 또는
@JvmStatic
로 대체됩니다. - 와일드카드 타입은 선언-지점 변성 및 타입 프로젝션으로 대체됩니다.
- 삼항 연산자
a ? b : c
는 if 표현식으로 대체됩니다. - 레코드
- 패턴 매칭
- 패키지 전용 가시성 한정자
코틀린에 있지만 자바에 없는 기능
- 람다 식 + 인라인 함수 = 고성능 사용자 정의 제어 구조
- 확장 함수
- 널 안정성
- 스마트 캐스트 (자바 16: Pattern Matching for instanceof)
- 문자열 템플릿 (자바 21: String Templates (Preview))
- 프로퍼티
- 주 생성자
- 일급 위임
- 변수 및 프로퍼티 타입 추론 (자바 10: Local-Variable Type Inference)
- 싱글톤
- 선언-지점 변성 및 타입 프로젝션
- 범위 표현식
- 연산자 오버로딩
- 동반 객체
- 데이터 클래스
- 코루틴
- 최상위 함수
- 기본값이 있는 파라미터
- 이름이 있는 파라미터
- 중위 함수
- expect 및 actual 선언
- 명시적 API 모드 및 API 표면에 대한 더 나은 제어
다음 단계는?
다음 방법을 알아보세요: