Java에서는 문자열을 다루는 객체로 String, StringBuilder, StringBuffer의 세 가지 클래스를 제공해줍니다.이 글에서는 이 세 가지 클래스의 차이를 개념적으로 이해하고, 언제 어떤 클래스를 선택해야 할지에 대한 가이드를 작성해볼 것입니다. String: 불변(immutable)한 문자열 String은 가장 기본적으로 사용되는 문자열 클래스입니다. 중요한 특징은 불변(immutable) 이라는 점입니다. 한 번 생성된 String 객체는 내용을 바꿀 수 없습니다.String의 내부 구현을 보면 값을 저장하고 있고, 이 값은 final로 지정되어 있어 불변의 특성을 지니게 됩니다.public final class String implements java.io.Serializable..
java

이전에 설명한 functor 글을 읽어보시면 더욱 도움이 됩니다.여기서도 샘플 코드는 kotlin으로 작성합니다.오류에 대한 정정이나 의견은 언제든지 환영합니다. Option 타입은 일반적으로 Some, None의 두 타입으로 정의됩니다.Some은 값이 존재할 경우의 타입이고 None은 값이 존재하지 않을 경우의 타입입니다.sealed class Option { data object None : Option() data class Some(val value: A) : Option} Java의 Optional은 위에서 적은 것과 같이 타입으로 구분되지 않고, isPresent(), isEmpty() 같은 함수를 통해 Some, None을 구분한다고 이해할 수 있습니다.val t = Optional.of..
Scala는 기간 단위의 값을 제어하기 위해 scala.concurrent.duration 패키지에 Duration을 제공해줍니다 (실제 구현체는 FiniteDuration입니다)Duration을 언어 차원에서 제공해주어 개발하기는 좋은데, scala 자체적인 날짜/시간 제어 라이브러리는 따로 제공해주지 않아 결국 java의 라이브러리를 사용하게 되고, Duration이 이 라이브러리들과 편하게 호환되지는 않아 상당히 불편합니다.날짜/시간 라이브러리는 java.time 패키지를 사용하면 되는데 여기서 LocalDateTime을 Duration을 사용해 계산시키고 싶을 때는 아래 적은 코드처럼 사용하면 됩니다.import java.time.{LocalDateTime, LocalTime, Duration =..