분류 전체보기

    [ Kotlin ] Coroutines을 확실하게

    코루틴의 포인트는 이전에 자신의 실행이 마지막으로 중단되었던 지점에서 다음의 장소에서 실행을 재개할 수 있다는 것이다. 코루틴은 협력 작업, 예외, 이벤트 루프, 반복자, 무한 리스트, 비동기 처리에 적합하다. 코루틴은 비동기처리를 간단한 코드로 만들어준다. (콜백, 캔슬, 리소스관리 등...) 코루틴은 메인쓰레드가 블라킹되는 부분에 지원을 해준다. 코루틴은 비동기 콜백 처리를 순차적인 코드로 바꿀 수 있다. (콜백지옥으로 되어있는 것을 순차적으로 짤 수 있다.) fun main() { GlobalScope.launch { delay(1000L) println("World") } print("Hello, ") Thread.sleep(2000L) println("Hi, ") } // Hello, (1초뒤)..

    [ Kotlin ] 코틀린에 존재하는 특이한 자료형 (Unit, Any, Nothing)

    1. Unit - 자바의 void와 같음 fun unitMethod(): Unit { println("반환값이 없는 함수입니다.") } 2. Any/Any? - Any - non-null 타입의 조상격 (Int, Float, ...) - Any? - nullable 타입의 조상 (Int?, Float?, ...) 3. Nothing ex) fun 함수명(변수명: 타입, ...) : Nothing { 함수내용 -> " 너 뭔가 잘못했다. " } - 이 함수를 호출하면 뭔가 잘못되었다는 것을 표현 - 명시적으로 알려줌

    [ Kotlin ] Null

    NULL - 상태를 모름, 존재하지 않음 - 0과는 다름 - Null을 대상으로 연산할 수 없음 NullSafety (Null로 부터 안전해지는 이유) - 코틀린의 가장 큰 특징 ?를 이용하여 Null 처리 val number : Int? = null // Null 가능 val number : Int = 10 // Null 불가능 val num1: Int? = 3 + 5 val num2: Int? = 10 val num3: Int? = num1 + num2 // 결과 -> 에러 왜 Error일까? => 컴파일할 때 num1과 num2가 Int로 보장되지 않기 때문에 에러 num1이과 num2가 nullable타입이라서, 만약 nullable타입이 아닌 Int 형식이었으면 성공적으로 출력 => 에러만 없애..

    [ Kotlin ] 변수와 자료

    변경 가능한 변수 - var 변경이 불가능한 변수 - val 변수 네이밍이 중요한 이유 - 가독성을 향상시키는 가장 좋은 방법 - 코드가 길어질수록 변수의 이름을 보고 어떤 것인지 파악하는 일이 많다. 자료형 1. 정수형 - Byte - Short - Int - Long 2. 실수형 - Float - Double 3. 논리형 - Boolean - True, False 표현 4. 문자형 - 한글자 ( 'A', '1', 'b' ) 5. 문자열형 - 여러 글자 ( "안녕하세요", "abc" ) * 자료형 추론 var number:Int = 10 변수종류 변수명:변수타입 = 값 var number = 100 -> 정수의 경우 코틀린은 기본적으로 Int로 추론한다. 따라서 number는 Int형으로 추론 * 추론..

    [ Java ] 객체 자신을 가리키는 this

    this - 인스턴스 자신의 메모리를 가리킴 - 생성자에서 또 다른 생성자를 호출할 때 사용 - 자신의 주소(참조값)을 반환 생성된 인스턴스 메모리의 주소를 가짐 - 클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드 생성자에서 다른 생성자를 호출하는 this public class Person { String name; int age; public Person() { this("null name", 1); } public Person(String name, int age) { this.name = name; this.age = age; } } ex) Person p = new Person(); Person()이 실행 돼 this로 생성자를 호출하여 생성한다.