일반적으로 사용되는 클래스 String
(추천 튜토리얼: Java 입문 튜토리얼)
String 클래스는 문자열을 나타냅니다. Java 프로그램의 모든 문자열 리터럴(예: "abc" )은 이 클래스의 인스턴스로 구현됩니다.
문자열은 상수이며 해당 값은 생성된 후에 변경할 수 없습니다. 문자열 버퍼는 변경 가능한 문자열을 지원합니다. String 객체는 불변이기 때문에 공유가 가능합니다.
String 소스 코드
public final class String implements java.io.Serializable, Comparable<String>, CharSequence { }
String 멤버 변수
//String的属性值 private final char value[]; //数组被使用的开始位置 private final int offset; //String中元素的个数 private final int count; //String类型的hash值 private int hash; // Default to 0 private static final long serialVersionUID = -6849794470754667710L; private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0];
소스 코드를 보면 String의 맨 아래 레이어가 문자 배열을 사용하여 유지되는 것을 볼 수 있습니다.
멤버 변수는 String 클래스의 값이 최종적이며 변경할 수 없다는 것을 알 수 있으므로 값이 변경되는 한 새로운 String 유형 객체가 생성되며 String 데이터의 저장이 반드시 0번째부터 시작되는 것은 아닙니다. 배열의 요소이지만 오프셋이 가리키는 요소부터 시작합니다.
(동영상 튜토리얼 추천: java 동영상 튜토리얼)
문자열 객체를 생성하는 방법
String s1 = "hello" ; String s2 = "world" ; String s3 = "hello" ; System. out. println(s1 == s3) ; //true
S1과 S3의 "hello"와 s2의 "world"는 메소드 영역의 상수 풀에 존재합니다.
그림과 같이
So s1==s3
s1 = new String ("hel1o") ; s2 = new String ("hel1o") ; System.out.println(s1 == s2) ; //false System.out.println (s1.equals (s2) ) ; // true
s1과 s2는 new를 통해 얻은 두 개의 String 객체로 힙에 저장되며 주소가 다릅니다. s1과 s2는 두 개의 참조이므로 비교되는 것은 주소 s1 != s2입니다.
String's equals는 Object의 같음을 다시 작성합니다. Object처럼 주소를 비교하지 않고 값을 비교하므로 s1.equals(s2)는 true입니다.
아아아아위 내용은 일반적으로 사용되는 Java 클래스 String 클래스에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!