체크드 익셉션

  • 자바에서는 체크드 익셉션을 try catch, throw를 통해 해결하지 않으면 컴파일 에러가 발생
  • 코틀린은 체크드 익셉션을 강제하지 않는다. (생략가능)

기본 자료형

  • 자바는 원시 자료형을 지원하며 객체로된 레퍼런스 타입도 지원한다
  • 코틀린은 레퍼런스 타입만 지원한다
    • 코틀린의 레퍼런스 타입은 최적화된 방식으로 자바로 컴파일된다.

정적 맴버

  • 자바는 static 키워드로 정적 맴버를 선언한다.
  • 코틀린은 companion object로 대체

삼항 연산자

  • 자바는 삼항 연산자가 존재한다.
  • 코틀린은 if-else로 대신한다 (if else 문이 값을 반환하는 것이 가능)

세미콜론(;)

  • 자바에서 라인의 끝은 무조건 세미콜론으로 끝나야한다.
  • kotlin은 세미클론을 생략 가능하다.

확장

  • 코틀린은 개발자가 임의로 객체의 함수나 프로퍼티를 확장해서 사용할 수 있다.

데이터 클래스

  • 데이터를 보관하거나 전달하는 목적을 가진 불변 객체로 사용
  • 기존 자바에선 주로 Lombok을 사용 (@Data)
  • JDK 15에서 record 라는 이름으로 추가됨

문자열 템플릿

  • 문자열에 변수를 사용하거나 여러 행으로 된 텍스트 블록을 만들 수 있다
    • “”” 으로 감싸 텍스트 블록 생성 가능
  • 자바에서는 해당 기능이 프리뷰 상태

NULL 안정성

  • 자바에서 가장 많이 발생하는 예외는 NullPointerException
  • 자바의 옵셔널(Optional)은 값을 래핑하기 때문에 객체 생성에 따른 오버헤드가 발생하고, 컴파일 단계에서 Null 가능성을 검사하지 않음
  • Kotlin은 언어적 차원에서 NullPointException이 발생할 가능성을 제거한다.
  • Nullable 참조는 컴파일 단계에서 NULL 안정성을 제공
    • 변수~? 해당 변수가 null이 아니라면 실행
    • 변수~!! 해당 변수가 null이 아니라고 확신하는 경우

기타

  • 스마트 캐스트
  • 실드 클래스
  • 위임
  • 중위 표현식
  • 연산자 오버로딩
  • 코루틴
  • etc

'Development > Kotlin&Android' 카테고리의 다른 글

Kotlin 문법 Part 4  (0) 2023.03.23
Kotlin 문법 Part 3  (0) 2023.03.16
Kotlin 문법 Part 2  (0) 2023.03.02
Kotlin 문법 Part 1  (0) 2023.02.28
스프링의 코틀린 지원  (0) 2023.02.27

+ Recent posts