logo

Java 문자열 최대 크기

이 섹션에서는 다음 내용을 논의하겠습니다. Java에서 문자열의 최대 크기는 얼마입니까?

~ 안에 자바 , ㅏ 문자 배열로 간주할 수 있으며 문자열이라고 하는 문자 시퀀스로 간주할 수 있습니다. String 클래스는 문자열을 나타냅니다. 문자열이 생성되면 변경할 수 없습니다. 문자열 개체는 공유할 수 없습니다. 불변 . 예를 들어 다음 문자열을 고려해보세요.

자바스크립트 트림
 String str='javatpoint'; 

위의 문자열은 다음과 같습니다.

 char ch[] = {'j', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't'}; String str = new String(ch); 

String 클래스는 String의 길이를 결정하는 length() 메서드를 제공합니다. 메소드의 구문은 다음과 같습니다.

 public int length() 

이 메서드는 문자열의 길이를 반환합니다. 그만큼 문자열의 길이 의 수와 같습니다 유니코드 단위 문자열에서. Java 플랫폼은 char 배열(각 문자는 2바이트를 사용함), String 및 StringBuffer 클래스에서 UTF-16 표현을 사용합니다. 이 표현에서 보조 문자는 char 값 쌍으로 표시됩니다. 첫 번째 값은 높은 서로게이트 범위(uD800-uDBFF)이고 두 번째 값은 낮은 서로게이트 범위(uDC00-uDFFF)입니다.

이 메소드는 int 유형의 길이를 리턴합니다. 따라서 문자열 최대 크기는 정수 데이터 유형의 범위와 동일합니다. 메소드가 반환하는 최대 길이는 Integer.MAX_VALUE입니다.

자바를 두 배로 늘리는 정수

Java에서 int의 크기는 4바이트입니다(부호 있는 비트, 즉 MSB 포함). 정수 데이터 유형의 범위는 -2입니다.312로31-1(-2147483648~2147483647). 인덱싱에는 음수 값을 사용할 수 없습니다. 인덱싱은 최대 범위 내에서 수행됩니다. 즉, 저장할 수 없다는 뜻입니다. 2147483648 성격. 따라서 Java에서 문자열의 최대 길이는 다음과 같습니다. 0~2147483647 . 따라서 이론적으로 길이가 2,147,483,647자인 문자열을 가질 수 있습니다.

Java 프로그램을 통해 문자열의 최대 길이를 찾아보자.

문자열MaxSize.java

 import java.util.Arrays; public class StringMaxSize { public static void main(String args[]) { for (int i = 0; i <1000; i++) { try integer.max_value is a constant that stores the maximum possible value for any integer variable char[] array="new" char[integer.max_value - i]; assign specified data to each element arrays.fill(array, 'a'); creating constructor of string class and parses an into it str="new" string(array); determines print length system.out.println(str.length()); } catch (throwable e) returns detail message this throwable system.out.println(e.getmessage()); prints system.out.println('last: ' + (integer.max_value i)); i); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/05/java-string-max-size.webp" alt="Java String Max Size"> <h4>Note: We have not shown the complete output because the output is too long to show.</h4> <p>In the above example, we have used a for loop that executes 1000 times. Inside the try block, we have created an array of <strong>Integer.MAX_VALUE-i</strong> . After that, we have invoked the fill() method of the Arrays class. It assigns the specified data type value to each element of the specified range of the specified array.</p> <p>Inside the catch block, we caught the exception (if any) thrown by the fill() method and the <strong>getMessage()</strong> method prints the message related to the exception.</p> <p>Each character takes two bytes because Java stores string as UTF-16 codes.</p> <p>Whether you are appending strings directly or using a StringBuilder (much better), you will occasionally need twice as much memory: one to store the existing string and one to store the new string/buffer when it needs to be expanded.</p> <p>If we try to insert the value beyond the limit upon doing so, the memory gets overflow and the value that we get will be negative. For example, consider the following program:</p> <p> <strong>StringSizeBeyondLimit.java</strong> </p> <pre> public class StringSizeBeyondLimit { public static void main(String[] arg) { try { System.out.println( &apos;Trying to initialize&apos; + &apos; a n with value&apos; + &apos; Integer.MAX_VALUE + 1&apos;); // Try to store value Integer.MAX_VALUE + 1 int n = Integer.MAX_VALUE + 1; // Print the value of N System.out.println(&apos;n = &apos; + n); } catch(Exception e) { System.out.println(e); } } } </pre> <p> <strong>Output:</strong> </p> <pre> Trying to initialize n with value Integer.MAX_VALUE + 1 n = -2147483648 </pre> <hr></1000;>

산출:

 Trying to initialize n with value Integer.MAX_VALUE + 1 n = -2147483648