Comparison to Java | Kotlin

  1. null 을 처리하는 방법이 다릅니다.

kotlin은 nullable 하지 않습니다. null pointer exception을 피하기 위해 기본적으로는 nul 을 지원하지 않도록 설계되었습니다. 따라서 코틀린에서는 엘비스연산자, 세이프콜, 낫널어설션과 같은 널값을 관리하는 여러 도구들을 제공합니다. 컴파일 시점에서 널체크를 진행합니다.

  1. 확장함수를 제공합니다.

특정 타입, 클래스에 대해서 내부가 아니라 외부에서 해당 클래스에 대한 확장함수를 선언할 수 있습니다.

  1. 코틀린은 가독성이 뛰어납니다.

세미콜론을 작성하지 않아도 되며 자바필드의 게터와 세터등을 자동으로 구현합니다.

  1. 스마트 캐스트를 지원합니다.

  2. 람다식과 인라인함수를 통해 퍼포먼스가 뛰어납니다.

기존의 Java8에도 람다식을 제공하였지만 코틀린에서는 인라인 한정자를 이용해 람다를 함수 인자로 건낼 때 퍼포먼스를 더 효율적으로 제공할 수 있습니다.

  1. 데이터 클래스를 제공합니다.

data dto를 생성할 필요 없이 코틀린의 데이터클래스는 equals, hashcode, tostring과 같은 함수를 자동으로 생성해줍니다.

  1. 연산자 오버로딩을 제공합니다.