Java - 대소문자 변환 & 구분없이 비교 (toUpperCase, toLowerCase, equalsIgnoreCase)

String 클래스는 문자열을 대문자로 변경하거나 소문자로 변경하는 메소드를 제공합니다. toUpperCase()는 대문자로, toLowerCase()는 소문자로 변경해줍니다. 기본적으로 영어 문자열을 변경해주지만 인자로 Locale을 전달하면 해당 언어에 대해서 대소문자 변환을 해 줍니다. equalsIgnoreCase를 이용하여 대소문자 구분없이 비교를 할 수 있습니다.

30 Jun 2020

Java - System.identityHashCode()와 hashCode()의 차이점

System.identityHashCode()는 객체의 고유한 hashcode를 리턴하는 메소드입니다. hashCode()는 모든 객체의 부모 클래스인 Object 클래스에 정의되어있습니다. 그리고 하위 클래스가 이 메소드를 오버라이드할 수 있습니다. 그렇기 때문에 객체는 다르지만 hashcode는 동일한 값을 리턴하는 경우가 있습니다.

30 Jun 2020

Kotlin - Reified를 사용하는 이유?

Reified 키워드는 Generics로 inline function에서 사용되며, Runtime에 타입 정보를 알고 싶을 때 사용합니다. Reified가 없다면 타입 정보를 담고 있는 객체를 인자로 넘겨야해서 파라미터 개수가 늘어납니다. 하지만 Reified를 사용하면 runtime에 정보를 알 수 있고, 리턴 타입이 다른 함수를 오버로딩할 수 있습니다.

28 Jun 2020

Kotlin - Sealed class 구현 방법 및 예제

Sealed class는 Super class를 상속받는 Child 클래스의 종류 제한하는 특성을 갖고 있는 클래스입니다. Enum과의 차이점은 Enum은 single instance만 만들 수 있는 반면에 Sealed class는 여러개의 객체를 생성할 수 있습니다. 또한 Generics로 클래스를 정의할 수도 있습니다.

27 Jun 2020

Android - SharedPreferences로 간단한 데이터 저장 방법

SharedPreferences를 이용하여 간단한 데이터를 저장할 수 있습니다. SQLite 같은 DB를 이용하기엔 번거로울 때 사용하면 좋습니다. SharedPreferences는 App의 개별 데이터 저장소에 xml파일을 만들고, 그 파일에 Integer, String 등의 데이터를 저장하거나 읽습니다. key, value 형태로 데이터를 저장하며 put, get 메소드를 제공합니다.

21 Jun 2020

Android - AlarmManager로 알람을 등록하는 방법

AlarmManager 통해 정해진 시간에 알람을 받을 수 있습니다. App이 실행 중이 아닐 때라도 알람을 받아 어떤 작업을 처리할 수 있습니다. RTC, Elapsed time을 기준으로 알람을 발생시킵니다. 보통 doze mode에서는 알람을 발생시키지 않지만 원한다면 발생하도록 요청할 수 있습니다. 그리고 시스템 리소스를 효율적으로 사용하기 위해 알람이 정확한 시간이 발생되지 않을 수 있습니다.

20 Jun 2020

Java - Thread 생성, 실행, 정지하는 방법

Java에서 Thread를 생성하고 실행, 정지하는 방법에 대해서 알아보겠습니다. Thread를 상속받아 구현할 수 있지만, Runnable을 Thread에 전달하여 동작하도록 할 수도 있습니다. join()으로 쓰레드의 작업이 완료될 때까지 기다릴 수 있습니다. 종료는 flag방식과 인터럽트 방식으로 구현할 수 있습니다. stop()은 쓰레드를 안전하게 종료하지 않아 사용하면 안됩니다.

17 Jun 2020

Java - CompletableFuture 사용 방법

CompletableFuture는 Future와 CompletionStage를 구현한 클래스입니다. Future이지만 supplyAsync(), runAsync()를 이용하여 직접 쓰레드를 생성하지 않고 async로 작업을 처리할 수 있습니다. 그리고 여러 CompletableFuture를 병렬로 처리하거나, 병합하여 처리할 수 있게 합니다. 또한 Cancel, Error를 처리할 수 있는 방법을 제공합니다.

16 Jun 2020
codechachaCopyright ©2019 codechacha