>

숫자 만 저장하는 String 유형의 ArrayList가 있다고 가정하십시오. 자원을 낭비하고 있습니까? String이 int보다 크거나 짧습니까? 문자열의 크기를 어디에서나 찾을 수 없으며 저를 흥미롭게 만드는이 멍청한 질문이 나왔습니다.

5 자리 숫자를 저장하는 데 가장 효율적인 데이터 형식은 무엇입니까?

  • 답변 # 1

    String 객체의 크기는 매우 유연합니다. 문자열의 각 문자는 1 바이트 또는 2 바이트를 차지하므로 5 자리 숫자를 저장하는 것은 5 바이트 이상입니다. 또한 String 에 대한 오버 헤드가 있습니다.  목적. 반면 int는 32 비트이며 4 바이트에 불과합니다.

    더 중요한 문제는 문자열로 저장된 숫자로 산술을 수행하기 어렵다는 것입니다. 더하기, 빼기, 곱하기 및 나누기 방법을 구현해야합니다. int 와 함께  당신은 연산자를 내장했습니다.

  • 답변 # 2

    자바 8에서는 String  인턴은 단지 char[] 입니다   String 에서 사용되는 모든 문자를 포함합니다 . 이 경우 int  32 비트는 1 char 보다 큽니다.  16 비트

    Java 9에는 byte[] 가 있습니다.   char[] 대신   String 를 위해

    이제 당신이 사용하기에 더 효율적인 유형을 알아내는 것은 당신에게 달려 있습니다.

  • 답변 # 3

    문자열과 정수는 객체이고 int는 기본 유형입니다. 따라서 객체는 더 많은 메모리를 사용하지만 기본 유형은 그렇지 않습니다. 예를 들어 다음과 같은 기본 유형이있는 경우 :

    int i = 5;
    
    

    예를 들어 메모리 주소 10에서 값 5가 저장되고 주소 10을 알고 있습니다

    그러나 다음과 같은 객체의 경우 :

    Integer i = new Integer(5):
    
    

    5의 값은 예를 들어 주소 2에 저장되고 주소 10 (i 변수)은 더 많은 메모리를 사용하는 주소 2를 참조합니다. 새 객체가 생성되면 각 인스턴스 변수마다 하나씩 연속 된 일련의 블록으로 구성된 복합 메모리 블록이 생성되어 더 많은 메모리를 사용합니다.

    문자열은 객체, 특수 객체이지만 여전히 객체입니다. 예를 들어 new 가 필요하지 않기 때문에 특별합니다.

  • 이전 javascript - crypto-js를 통한 base64 인코더
  • 다음 cakephp 3x의 템플릿에 엔티티 필드의 최대 길이를 표시합니다