코틀린은 JVM 위에서 동작하며, 정적 타입 프로그래밍 언어입니다.정적 타입 언어 : 객체 타입을 컴파일 타임에 결정하는 프로그래밍 언어로 컴파일 타임에 타입에 대한 정보가 결정되어 런타임에 메서드를 빨리 호출할 수 있으며 안정성 또한 올라갑니다.(C ,C++, JAV
특징 :1\. Kotlin 컴파일러는 Array<'T'>을 Java의 배열로 컴파일한다.2\. 같은 타입의 정해진 크기의 연속된 요소로 이루어진 배열이다. 3\. 생성된 순간 Size는 고정되며 Element 삭제나 추가를 할 수 없다.4\. Element들은 M
Enum Class
in,out 키워드를 알아보기 전에 먼저 제네릭에 대해 알아야 합니다.자주 보았던 <> 요런 모양을 가진 친구입니다.클래스, 인터페이스, 함수 등에서 동일한 코드를 재사용하고 싶을 때 여러 타입을 지원하기 위한 유용한 기능입니다.타입 불변성이란, 제네릭 타입을 사
기존에 정의된 클래스에 함수를 추가하는 기능이다. 자신이 만든 클래스는 새로운 함수가 필요할 때 쉽게 추가할 수가 있지만, Standard Library 또는 다른 사람이 만든 라이브러리를 사용할 때 함수를 추가하기가 어렵습니다.이럴때 코틀린의 확장 함수를 사용할 수
이름 없이 간편하게 호출될 수 있는 함수코틀린은 이름을 부여한 함수임에도 불구하고 실행을 간편하게 할 수 있는 연산자라는 것을 제공한다. 이러한 예시로는 +, -부터 invoke까지 있는데, 이러한 연산자를 overloading할 수 있도록 키워드가 바로 operato
Map과 MutableMap 또한 List와 MutableList의 관게처럼 불변과 가변의 차이를 가진다.MutableMap은 Map을 상속받는다.Map은 Key/Value 쌍의 데이터를 저장하는 구조이다.Value의 값들은 중복된 값들이 존재할 수도 있지미나 Key
boolean 자료형을 가지고 있는 wrapping 클래스입니다.멀티쓰레드 환경에서 동시성을 보장합니다.Compare-And-Swap을 이용하여 동시성을 보장합니다. 여러쓰레드에서 데이터를 write해도 문제가 없습니다.synchronized 보다 적은 비용으로 동시성
런타임에 프로그램의 클래스를 조사하기 위해서 사용되는 기술입니다. 즉, 프로그램이 실행중일 때 인스턴스 등을 통해 객체의 내부 구조 등을 파악할 수 있습니다.(Spring에서는 이 기술을 적극적으로 활용하고 있습니다.)대표적으로 어노테이션의 활용입니다.코틀린에서는 자바
코틀린 표준 라이브러리에는 Scope 함수를 지원합니다. Scope 함수를 사용하게 되면 객체의 정보를 기본적으로 가지고 있는 코드 블럭을 만들어 간결하고 가독성이 좋은 코드를 가능하게 해줍니다.객체의 정보를 it이라는 변수로 얻을 수 있습니다.lamba 구문에서의 결
인라인 클래스는 새로운 타입을 안전하고 최적화된 형식으로 정의하는 방법입니다.인라인은 프로그래밍 언어에서 주로 함수에 사용되며 컴파일 과정에서 원래 함수로 따로 분리되어 있던 것이 최종 컴파일된 코드에서는 함수를 호출하는 위치에 함수의 본문이 삽입되어 프로그램을 최적화
Collections에 대해 정의된 lambda를 인자로 받는 확장함수들은 inline function으로 익명 클래스 객체 생성을 하지 않아 퍼포먼스 오버헤드 걱정없이 자유롭게 사용할 수 있다.그러나 Collections의 확장함수들은 호출될 때 마다 새로운 Coll