Kotlin
특정 코드를 여러 타입에 대해 재사용 하고 싶을 때, 정확히 어떤 타입이 들어오게 될 지 미리 알 수 없을 때 제네릭 타입을 사용한다. 코틀린에서 모든 타입을 받기 위해 사용하는 Any, *가 어떻게 다른건지 글로 정리해두려 한다. Any class Any는 코틀린에서 모든 타입이 상속받는 최상위 타입이다. 자바로 디컴파일 해보면 Object 타입으로 변환되며, 내부엔 equals(), hashCode(), toString()같은 메서드가 정의되어 있다. 제네릭 타입으로 Any를 사용하면 어떤 객체를 집어넣든 업캐스팅이 적용돼서 모든 타입이 들어갈 수 있게 된다. 예제를 보면 arrayList가 Int, String, Float 모든 타입을 원소로 받을 수 있다. fun main() { val array..
생각날 때마다 하나씩 업데이트할 예정. Java Array → List String[] array = new String[0]; List list = Arrays.asList(array); List → Array List arrayList = new ArrayList(); String[] array = arrayList.toArray(new String[0]); List → ArrayList, LinkedList List list = Arrays.asList(array); List arrayList = new ArrayList(list); List linkedList = new LinkedList(list); Print Array String.join()은 array, list 둘 다 인자로 받을 수 있..
나중에 다시 정리해서 올릴거긴 하지만... 기본 개념을 공부하면서 간단하게 정리한 것부터 업로드한다! 함수 vs 서브루틴 함수는 call/return, 코루틴은 suspend/resume 둘 다 블록 내부에 정의된 로직을 실행하고 완료되어야 다음으로 넘어가는 구조. 함수는 한번 호출하면 다음 코드의 동작이 중지, 함수 내부 로직을 모두 수행할 때 까지 실행이 중지되지 않는다. 서브루틴은 로직 중간 지점에서도 시작이나 종료가 이루어질 수 있다. 실행을 일시중지하고 다른 코루틴으로 이동하거나, 일시중지된 지점에서 재시작 할 수도 있다. 코루틴 코루틴은 서브루틴의 확정된 개념, 일종의 경량 쓰레드(저비용 쓰레드) 코루틴은 쓰레드의 대안이 아니라, 기존의 쓰레드를 더 작게 쪼개쓰는 개념 코루틴은 크게 stack..