Java에는 String 클래스와 StringBuffer 클래스(버퍼 문자열 처리 클래스)라는 두 가지 유형의 문자열 연산이 있습니다.
둘의 차이점에 대해 간단히 이야기해보겠습니다.
String 클래스와 StringBuffer 클래스는 모두 문자열 작업을 구현하는 해당 메서드를 제공하지만 약간 다릅니다.
(1) 문자열 클래스
이 클래스가 문자열을 생성하면 해당 객체는 변경할 수 없습니다. String 클래스의 내용과 길이는 고정되어 있습니다. 프로그램이 문자열 정보를 얻으려면 시스템에서 제공하는 다양한 문자열 연산 메서드를 호출해야 합니다. 다양한 시스템 메소드를 통해 문자열에 연산을 적용할 수 있지만, 이는 객체 인스턴스 자체를 변경하지 않고 새 인스턴스를 생성합니다. 시스템은 객체에 포함된 실제 문자 수를 기반으로 String 클래스 객체에 메모리를 할당합니다.
(2) StringBuffer 클래스
Buffer라는 단어를 찾아보니 버퍼링이라는 뜻이더군요. 이 클래스에는 버퍼링 기능이 있어야 합니다. 이 클래스는 변경 가능한 문자열을 처리합니다. StringBuffer 클래스의 문자열을 수정하려면 새 문자열 개체를 만들 필요가 없고 원본 문자열에 직접 작업하면 됩니다. 이 클래스의 다양한 문자열 조작 방법은 String 클래스에서 제공하는 방법과 동일하지 않습니다. 시스템은 StringBuffer 클래스에 메모리를 할당할 때 현재 문자가 차지하는 공간 외에 추가 16자 버퍼도 제공합니다. 각 StringBuffer 객체에는 특정 버퍼 용량이 있습니다. 문자열 크기가 용량을 초과하지 않으면 새 용량이 할당되지 않습니다. 문자열 크기가 용량을 초과하면 용량이 자동으로 늘어납니다.
다음은 몇 가지 구체적인 예입니다
문자열 연결
String 클래스에는 두 가지 메서드가 있습니다.
첫 번째("+")
public class str{ public static void main(String[] args){ String str1="加特效!"; String str2="Duang~~"; System.out.println(str1+" "+str2); } }
두 번째 유형("concat")
public class str{ public static void main(String[] args){ String str1="加特效!"; String str2="Duang~~"; System.out.println(str1.concat(str2)); } }
StringBuffer 클래스 메서드
public class str{ public static void main(String[] args){ //构建一个缓冲字符串的对象sb StringBuffer sb=new StringBuffer("加特效!"); //通过append方法,在这个对象后面添加一个新字符串 sb.append(" Duang~~"); System.out.println(sb); } }
최종 출력 결과 다음은 특수 효과를 추가하는 것입니다! Duang~~
위의 예를 보면 String 클래스를 확장할 때 두 개의 객체를 인스턴스화해야 한다는 것을 어렵지 않게 알 수 있습니다. 각 객체는 일정량의 메모리를 차지하지만 StringBuffer 클래스는 그렇지 않습니다. 다른 클래스를 인스턴스화해야 합니다. 새 클래스의 경우 확장 메서드만 호출하면 됩니다.
또 다른 점은 StringBuffer 클래스의 메모리 용량이 확장 가능하다는 것입니다. 구체적인 예를 들면 다음과 같습니다.
public class str{ public static void main(String[] args){ //声明字符串对象sb StringBuffer sb=new StringBuffer(40); System.out.println(sb.capacity()); //输出字符串的容量capacity sb.ensureCapacity(100); //扩充容量 System.out.println(sb.capacity()); //输出字符串的容量capacity } }
capacity() 메서드는 문자열 개체가 메모리에 보유할 수 있는 문자열 수를 나타냅니다. 메모리 용량을 확장하려면 verifyCapacity() 메서드를 사용할 수 있습니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.
JAVA에서 String 클래스와 StringBuffer 클래스의 차이점에 대한 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!