자바와 코틀린의 차이점

2020. 6. 14. 16:20카테고리 없음

자바와 코틀린의 차이점

Java는 객체 지향 프로그래밍 언어입니다. Java로 개발 된 프로그램 또는 응용 프로그램은 여러 플랫폼 및 시스템 / 장치 등에서 동일한 프로그램을 실행할 수있는 JVM (Java Virtual Machine)에서 실행됩니다. Kotlin은 최신 기능을 처리하는 새로운 프로그래밍 언어입니다. Kotlin은 정적으로 유형이 지정된 프로그래밍 언어입니다. Kotlin은 서버 측 응용 프로그램 개발에 적합한 선택이며 간결하고 표현력있는 코드를 작성할 수 있습니다.

Java 란 무엇입니까?

Java는 1995 년에 사용 된 OOP (object-oriented programming) 언어입니다. Java는 나중에 오라클이 인수 한 썬 마이크로 시스템에서 개발되었습니다. 브라우저에서 Java 프로그램을 실행하려면 제안되지 않은 플러그인으로 임베드 된 Java 애플릿을 사용해야합니다. 따라서 Java는 주로 독립형 애플리케이션 또는 백엔드 개발에 사용됩니다. Java는 James Gosling이 설계했으며 주요 구현은 OpenJDK입니다. Java는 Android 자체가 Java로 작성되므로 Android 애플리케이션 개발과 관련하여 대부분의 개발자에게 기본 선택입니다.

코틀린은 무엇입니까?

Kotlin은 IDE Jet Brains의 프로그래머가 개발 한 새로운 프로그래밍 언어로 최신 기능을 처리합니다. 2011 년에 처음 등장했으며 2016 년에 공식 릴리스되었으며 오픈 소스 언어입니다. Kotlin은 JVM (Java Virtual Machine)을 기반으로하는 Java, C ++와 같은 정적으로 유형이 지정된 프로그래밍 언어이지만 코드를 작성하고 iOS에서 실행 하기 위해 JavaScript , Android 및 Native  컴파일 할 수도 있습니다 . Kotlin은 원활한 학습 곡선으로 기존 Java 스택과 완벽하게 호환됩니다. 플러그인을 설치하기 만하면 Java에서 Kotlin으로 쉽게 전환 할 수 있습니다. 구글 I / O 기조 연설에서 코 틀린은 안드로이드 애플리케이션 개발을 위해 공식적으로 지원되는 언어가된다고 발표했다.

Java와 Kotlin의 일대일 비교 (Infographics)

다음은 Java와 Kotlin의 상위 8 가지 비교입니다.

Java와 Kotlin의 주요 차이점

둘 다 시장에서 인기있는 선택입니다. 몇 가지 주요 차이점에 대해 논의하겠습니다.

  • Kotlin은 불변 유형을 식별하고 컴파일러에 의해 내재 된 캐스트를 수행하는 스마트 캐스트를 지원하지만 Java에서는 캐스트를 식별하고 수행해야합니다.
  • Kotlin은 형식 유추를 지원하므로 변수의 데이터 형식을 명시 적으로 지정할 필요가 없지만 Java에서는 명시 적으로 지정해야합니다.
  • Kotlin에서는 예외를 검사하지 않았으므로 오류가 발생하기 쉬운 코드로 이어지지 만 Java는 오류 처리를 수행 할 수있는 검사 예외를 지원합니다.
  • Java 컴파일 시간은 Kotlin 컴파일 시간보다 15-20 % 빠르지 만 증분 빌드 컴파일의 관점에서 Kotlin은 Java와 동일한 컴파일 시간이 필요합니다.
  • Kotlin에서는 null 값을 변수에 할당하거나 값을 반환 할 수 없습니다. 실제로 할당하려면 특별한 구문으로 변수를 선언 할 수 있지만 Java에서는 null 값을 할당 할 수 있지만 null 값을 가리키는 객체에 액세스하려고하면 예외가 발생합니다.
  • Kotlin은 Java와 Kotlin의 차이에 관계없이 Java와 호환됩니다. Java에서는 Kotlin 코드를, Kotlin에서는 Java 코드를 호출 할 수 있습니다. 따라서 프로젝트에서 Java 클래스와 Kotlin 클래스를 나란히 둘 수 있으며 문제없이 컴파일 할 수 있습니다. 컴파일 후 Java 또는 Kotlin으로 작성된 클래스를 찾을 수 없습니다.

자바 vs 코 틀린 비교표

다음은 비교표입니다.

비교의 기초  자바 코 틀린
널 안전 Java에서 NullPointerException은 개발자에게 큰 좌절을 안겨줍니다. 사용자가 변수에 null을 할당 할 수 있지만 null 값을 가진 객체 참조에 액세스하는 동안 사용자가 처리해야하는 null 포인터 예외가 발생합니다. Kotlin에서 기본적으로 모든 유형의 변수는 null을 사용할 수 없습니다 (즉, 모든 유형의 변수 / 객체에 null 값을 할당 할 수 없음). null 값을 할당하거나 반환하려고하면 컴파일 타임에 Kotlin 코드가 실패합니다. 변수에 null 값을 가지려면 다음과 같이 선언 할 수 있습니다.
value num : Int? = null
확장 기능 Java에서 기존 클래스의 기능을 확장하려면 새 클래스를 작성하고 상위 클래스를 상속해야합니다. Java에서는 확장 기능을 사용할 수 없습니다. Kotlin은 개발자에게 기존 클래스를 새로운 기능으로 확장 할 수있는 기능을 제공합니다. 클래스 이름 앞에 새 함수 이름을 붙여 확장 함수를 만들 수 있습니다.
코 루틴  지원 Java에서 장기 실행 네트워크 I / 0 또는 CPU 집중 작업을 시작할 때마다 해당 스레드가 차단됩니다. Android는 기본적으로 단일 스레드이므로 Java는 백그라운드에서 여러 스레드를 작성하고 실행할 수있는 기능을 제공하지만이를 관리하는 것은 복잡한 작업입니다. Kotlin에서는 이러한 장기 실행 집중 작업을 실행하기 위해 여러 스레드를 만들 수 있지만 코 루틴 지원을 통해 장기 실행 집중 작업을 실행하는 동안 스레드를 차단하지 않고 특정 지점에서 실행을 일시 중단합니다.
확인 된 예외 없음 Java에서는 예외 지원을 확인하여 개발자가 예외를 선언하고 포착하게하여 궁극적으로 우수한 오류 처리 기능을 갖춘 강력한 코드로 이어집니다. 코 틀린에서는 예외를 확인하지 않았습니다. 따라서 개발자는 예외를 선언하거나 잡을 필요가 없습니다.이 예외는 장단점이 있습니다.
데이터 클래스 Java에서 데이터를 보유해야하지만 다른 것은 필요없는 클래스가 필요하다고 가정하십시오. 이를 위해 생성자, 데이터를 저장할 변수, getter 및 setter 메소드, hashcode (), toString () 및 equals () 함수를 정의해야합니다. Kotlin에서 데이터를 보유 해야하는 클래스가 필요하면 클래스 정의에서 키워드 "data"를 사용하여 클래스를 선언 할 수 있습니다. 컴파일러는 생성자, getter, setter 메소드 생성과 같은 모든 작업을 처리합니다. 필드.
스마트 캐스트 Java에서는 변수 유형을 확인하고 작업에 따라 캐스팅해야합니다. Kotlin에서 스마트 캐스트는 불변 값을 확인하고 암시 적 캐스팅을 수행하는 키워드 "is-checks"를 사용하여 이러한 캐스팅 확인을 처리합니다.
타입 추론 Java에서는 선언하는 동안 각 변수의 유형을 명시 적으로 지정해야합니다. Kotlin에서는 처리 할 할당에 따라 각 변수의 유형을 명시 적으로 지정할 필요가 없습니다. 명시 적으로 지정하려면 할 수 있습니다.
기능적 프로그래밍 Java는 Java 8까지 기능 프로그래밍을 지원하지 않지만 Android 애플리케이션을 개발하는 동안 Java 8 기능 의 유일한 서브 세트를 지원합니다 . Kotlin은 람다, 연산자 오버로드, 고차 함수 및 지연 평가 등과 같은 많은 유용한 방법으로 구성된 절차 및 기능 프로그래밍 언어의 혼합입니다.

결론

마지막으로 Java와 Kotlin의 비교에 대한 개요입니다. 이 Java vs Kotlin 기사를 읽은 후 Java와 Kotlin 언어에 대해 더 잘 이해할 수 있기를 바랍니다. 필자는 Java가 Kotlin보다 이점이 적더라도 컴파일 시간에 대한 걱정없이 Android 응용 프로그램 개발을 위해 Kotlin을 진행할 수 있다고 생각합니다.

 

https://www.educba.com/java-vs-kotlin/