Jwhy's Blogitory
close
프로필 배경
프로필 로고

Jwhy's Blogitory

  • 분류 전체보기 (128)
    • Book Study (49)
      • [Java] 이펙티브 자바 (19)
      • [Kotlin] 코틀린 코루틴 (6)
      • [Kotlin] 코틀린 인 액션 (4)
      • [Kotlin] 객체에서 함수로 (4)
      • [Web] 웹을 지탱하는 기술 (9)
      • [Web] HTTP2 IN ACTION (5)
      • [Spring] 토비의 스프링 3.1 (0)
      • [Theory] 출.스.마 (1)
      • [CS] 누구나 자료구조와 알고리즘 (1)
    • Devlog (13)
      • Kotlin (1)
      • Project (3)
      • Java (0)
      • Git (3)
      • AI (5)
      • 회고 (1)
    • Kotlin (13)
      • 이론 (1)
      • 기능 정리 (1)
      • [Inflearn] 코틀린 입문 (11)
    • Spring (29)
      • 이론 (1)
      • 프로젝트 (1)
      • 트러블 슈팅 (14)
      • 기능 정리 (12)
      • 리뷰 (1)
    • Java (2)
      • 이론 (2)
    • PS (18)
      • 이론 (1)
      • DFS, BFS, 백트래킹, 다익스트라 (11)
      • DP (2)
      • 이분 탐색 (1)
      • 구현, 시뮬레이션 (1)
      • 그리디 (2)
    • DevOps (4)
      • AWS (4)
  • 홈
  • 태그
  • 방명록

[Kotlin] 변성과 디스패치

작성된 코드는 모두 이해를 돕기위한, 간단한 예시일 뿐입니다.틀린 부분은 지적해주시면 감사드리겠습니다 😀변성(variance)이란?변성이란 타입간의 상관 타입의 관계를 의미한다.private interface Listprivate class ArrayList: Listprivate fun arrayListOf(vararg values: T) = ArrayList()fun main() { val list: List = ArrayList()}위 코드는 정상적으로 동작할까? 실제로 위 코드를 작성하면 Type mismatch 에러가 발생한다. ArrayList는 List의 구현체이고, Int 또한 Number의 하위 타입인데 왜 에러가 발생할까?fun main() { val..

  • format_list_bulleted Kotlin/이론
  • · 2024. 4. 24.
  • textsms

[Chapter06] 원시 타입, 컬렉션 및 배열

Kotlin In Action을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 코틀린의 원시 타입 코틀린은 원시 타입과 래퍼 타입을 따로 구분하지 않는다. 이들이 어떻게 원시 타입에 대한 래핑이 작동하는지 살펴보자. 1. 원시 타입 : Int, Boolean 등 자바는 int와 같은 원시 타입(primitive type)과 String과 같은 참조 타입(reference type)을 구분한다. 원시 타입에는 변수에 그 값이 직접 들어가지만, 참조 타입의 경우 메모리상의 객체 위치가 들어간다. 원시 타입은 효율적으로 저장하고, 전달할 수 있지만, 값에 대한 메소드를 호출하거나 컬렉션에 담을 수 없다. 때문에 이런 원시 타입을 래퍼 타입으로 감싸서 C..

  • format_list_bulleted Book Study/[Kotlin] 코틀린 인 액션
  • · 2024. 3. 1.
  • textsms

[Chapter06] 널 가능성, 플랫폼 타입

Kotlin In Action을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 널 가능성 널 가능성(nullability)은 NPE(Null Pointer Exception)을 피할 수 있게 돕기 위한 코틀린 타입 시스템의 특성이다. 널이 될 수 있는지 여부를 타입 시스템에 추가함으로써 컴파일러가 여러가지 오류를 컴파일 타임에 미리 감지해서 런 타임 시점에 발생할 수 있는 예외의 가능성을 줄여준다. 1. 널이 될 수 있는 타입 코틀린에서는 널이 될 수 있는 타입을 자바와 다르게 명시적으로 지원한다. int strLen(String s) { return s.length() } 위 코드에 null을 넘기면 길이를 가져오기 위해 s.을 하는 순간 NPE..

  • format_list_bulleted Book Study/[Kotlin] 코틀린 인 액션
  • · 2024. 3. 1.
  • textsms

[Chapter05] 지연 계산(lazy), with, apply

Kotlin In Action을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 1. 지연 계산(lazy) 컬렉션 연산 컬렉션의 함수들은 결과를 즉시(eagerly) 생성한다. 즉, 컬렉션 함수를 연쇄할 경우 매 단계마다 계산 중간 결과를 새로운 컬렉션에 임시로 담는다는 말이다. people.map(Person::name).filter { it.startsWith("A") } map과 filter의 반환 타입을 보면 알 수 있듯, 위 코드는 2개의 리스트를 생성하고 있다. 만약 원소가 수백만 개가 되면 효율성이 많이 떨어질 것이다. 하지만 시퀀스(sequence)를 사용하면 중간 임시 컬렉션을 사용하지 않고도 컬렉션 연산을 연쇄할 수 있다. val ..

  • format_list_bulleted Book Study/[Kotlin] 코틀린 인 액션
  • · 2024. 2. 7.
  • textsms

[Chapter05] 람다로 프로그래밍

Kotlin In Action을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 람다 식과 멤버 참조 람다 식(lambda expression) 또는 람다는 기본적으로 다른 함수에 넘길 수 있는 작은 코드 조각을 의미한다. 1. 람다 소개 : 코드 블록을 함수 인자로 넘기기 람다 식을 사용하면 함수를 선언할 필요가 없고, 코드 블록을 직접 함수의 인자로 전달할 수 있다. 람다의 등장 전에는 아래 코드와 같이 무명 내부 클래스를 이용했다. button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { doSomething(); } }) 위 코드를 람..

  • format_list_bulleted Book Study/[Kotlin] 코틀린 인 액션
  • · 2024. 2. 7.
  • textsms

[Item38] - 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라.

Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 타입 안전 열거 패턴 책의 초판에서는 다음과 같은 타입 안전 열거 패턴(typesafe enum pattern)을 소개했었다. public class TypesafeOperation { private final String type; private TypesafeOperation(String type) { this.type = type; } public String toString() { return type; } public static final TypesafeOperation PLUS = new TypesafeOperation("+"); public static..

  • format_list_bulleted Book Study/[Java] 이펙티브 자바
  • · 2024. 2. 7.
  • textsms
  • navigate_before
  • 1
  • ···
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • ···
  • 22
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (128)
    • Book Study (49)
      • [Java] 이펙티브 자바 (19)
      • [Kotlin] 코틀린 코루틴 (6)
      • [Kotlin] 코틀린 인 액션 (4)
      • [Kotlin] 객체에서 함수로 (4)
      • [Web] 웹을 지탱하는 기술 (9)
      • [Web] HTTP2 IN ACTION (5)
      • [Spring] 토비의 스프링 3.1 (0)
      • [Theory] 출.스.마 (1)
      • [CS] 누구나 자료구조와 알고리즘 (1)
    • Devlog (13)
      • Kotlin (1)
      • Project (3)
      • Java (0)
      • Git (3)
      • AI (5)
      • 회고 (1)
    • Kotlin (13)
      • 이론 (1)
      • 기능 정리 (1)
      • [Inflearn] 코틀린 입문 (11)
    • Spring (29)
      • 이론 (1)
      • 프로젝트 (1)
      • 트러블 슈팅 (14)
      • 기능 정리 (12)
      • 리뷰 (1)
    • Java (2)
      • 이론 (2)
    • PS (18)
      • 이론 (1)
      • DFS, BFS, 백트래킹, 다익스트라 (11)
      • DP (2)
      • 이분 탐색 (1)
      • 구현, 시뮬레이션 (1)
      • 그리디 (2)
    • DevOps (4)
      • AWS (4)
최근 글
인기 글
최근 댓글
태그
  • #이펙티브자바
  • #백준
  • #제네릭
  • #코틀린
  • #스프링 배포
  • #자바
  • #java
  • #백트래킹
  • #kotlin
  • #이펙티브 자바
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바