Kotlin과 Java의 Char 저장 방식 Kotlin과 Java는 UTF-16으로 인코딩 되어 저장된다. 아래는 Kotlin Char 클래스의 주석이다. 아래 주석에서 보면 Char은 16-bit 유니코드 문자를 표현한다고 되어 있다. /** * Represents a 16-bit Unicode character. * * On the JVM, non-nullable values of this type are represented as values of the primitive type `char`. */ public class Char private constructor() : Comparable { Kotlin과 Java는 왜 UTF-16을 문자열 인코딩 방식으로 택했을까? 바로 JVM이 내부적으로..
분류 전체보기
CharArray란? CharArray는 원시 타입 Char으로 이루어진 배열을 나타낸다. /** * ... * On the JVM, non-nullable values of this type are represented as values of the primitive type `char`. */ public class Char private constructor() : Comparable Char 클래스의 주석에 따르면 Kotlin은 non-nullable한 Char을 JVM상에서 Java의 원시 타입인 char과 똑같이 저장한다. 이러한 non-nullable한 Char 값들의 집합을 원시 타입을 유지하면서 배열로 만든 것이 바로 CharArray이다. CharArray는 언뜻 보면 Array과 비..
BooleanArray란? Kotlin의 BooleanArray는 원시 타입(Primitive Type) Boolean으로 이루어진 배열을 나타낸다. Kotlin은 non-nullable한 Boolean을 JVM상에서 Java의 원시 타입인 boolean과 똑같이 저장한다. 이러한 non-nullable한 Boolean 값들의 집합을 원시 타입을 유지하면서 배열로 만든 것이 바로 BooleanArray이다. 이 BooleanArray는 언뜻 보면 Array과 비슷해 보이지만, Array클래스는 객체만을 이낮로 받으므로 Array 속에 들어가는 Boolean은 Primitive Type이 아닌 한번 클래스로 감싸진 Boxed Type의 Boolean이다. 즉, 원시타입 BooleanArray는 Array에..
문자열 인코딩이란 무엇인가? 컴퓨터에는 문자열 자체를 저장할 수 없다. 컴퓨터에는 숫자가 저장되며, 출력될 때 문자열로 변환될 뿐이다. 즉, 우리가 만약 'a'라는 문자를 저장하면 컴퓨터에는 'a'가 저장되는 것이 아닌 61이라는 16진수 숫자가 저장된다.(10진수로는 97이다). 저장된 2자리 16진수 숫자는 출력될 때 다시 문자열로 변환된다. 이를 확인하기 위해서 Kotlin으로 아래 코드를 실행하면 "ASCII value of a is 97" 이라는 결과가 나온다. fun main(){ println("ASCII value of a is ${'a'.code}") } ASCII 인코딩 방식 처음 컴퓨터가 발명되었을 때는 영어권 국가에서만 언어가 사용되었기 때문에 문자열을 저장할 수 있는 공간이 128..
애러 원인 애 애러는 현재 Kotlin 버전과, Kotlin Compile 시 JVM 타겟 버전 설정이 달라서 생기는 문제이다. Caused by: org.gradle.api.GradleException: 'compileDebugJavaWithJavac' task (current target is [Kotlin 타겟 버전]) and 'compileDebugKotlin' task (current target is [JVM 타겟 버전]) jvm target compatibility should be set to the same Java version. 애러 해결 방법 이 문제는 아주 간단히 해결 가능하다. app 수준의 build.gradle.kts 파일 혹은 build.gradle 파일에 아래와 같이 적혀..