이 글은 Java에서 String과 StringBuffer의 차이점에 대한 관련 정보와 자세한 예를 주로 소개합니다. String과 StringBuffer의 시간 및 공간 사용량 차이를 테스트하기 위한 작은 예입니다.
Java에서 String과 StringBuffer의 차이점에 대한 자세한 예
String:
Primitive 유형이 아닌 객체입니다.
일단 생성되면 해당 값을 수정할 수 없습니다.
기존 String 객체를 수정하면 새 객체가 생성되고 그 안에 새 값이 저장됩니다. .
문자열은 최종 클래스입니다. 즉,
StringBuffer:
생성자를 통해서만 생성할 수 있습니다.
StringBuffer sb = new StringBuffer();
객체 이후 생성되면 메모리에 저장됩니다. 처음에는 추가 메서드를 통해 값을 할당합니다. 분명히 String보다 높습니다.
String 개체는 변경할 수 없습니다. Sting이 연산될 때마다 새로운 객체가 다시 생성되어 새로운 값을 저장하게 됩니다.
public class Test { public static void main(String args[]) { String str = "abc"; StringBuffer sb = new StringBuffer("abc"); Runtime runtime = Runtime.getRuntime(); long start = System.currentTimeMillis(); long startFreememory = runtime.freeMemory(); for (int i = 0; i < 10000; i++) { str += i; //测试StringBuffer时候把注释打开 //sb.append(i); } long endFreememory = runtime.freeMemory(); long end = System.currentTimeMillis(); System.out.println("操作耗时:" + (end - start) + "ms," + "内存消耗:" + (startFreememory - endFreememory)/1024 + "KB"); } }
작업 시간: 1872ms, 메모리 소비: 1301KB
StringBuffer를 사용하여 문자열에 문자열을 10,000번 추가작업 시간: 15ms, 메모리 소비: 162KB
위 내용은 Java에서 String과 StringBuffer의 연결과 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!