(문자열) String의 불변 모드
sb.append("]");//append();쓰레기를 만들지 않고 sb의 값을 바꾸고 있습니다.System.out.println(sb);
2. 대상지
Object obj = new Object();
obj는 객체의 참조입니다. 객체는 스택에 있고 new Object()는 객체이며 스택에 있습니다.(객체 롤업, 변수 롤업)
obj는 풍선에 매달린 밧줄이고, new Object()는 풍선이라는 것을 이렇게 이해할 수 있다. 우리는 대상의 인용을 통해 우리가 밧줄을 잡고 있어야 풍선이 도망가지 않는다.
String을 만드는 방법은 두 가지가 있습니다. 하나, String str=new String("abc"). 2, String s="def";두 가지 방법이 모두 String 대상의 인용이지만 자바 가상기 jvm는 이 두 가지 대상을 처리하는 방식이 다르기 때문에 첫 번째 jvm는 Heap에서 대상을 만들고 이 대상의 인용을 고객에게 되돌려준다.두 번째, jvm는 먼저 String 대상 탱크에서 String의 equals 방법을 통해 대상 탱크에 이 String 대상을 저장했는지 찾습니다. 만약에 있으면 기존의 대상의 인용을 고객에게 되돌려주고 Heap에 새로운 대상을 만들지 않습니다. 대상 탱크에 이 String 대상이 없으면 jvm는 Heap에 새로운 대상을 만들고 그의 인용을 고객에게 되돌려주며 이 인용을 String pool,첫 번째 방법으로 만든 대상은 jvm에서 String 대상을 대상 탱크에 넣지 않습니다. String의 인터넷 방법을 사용하지 않으면
package learn;
public class AutoBox {
public static void main(String[] args) {
Integer integer=12;
System.out.println(integer+13);
Integer i1=13;
Integer i2=13;
Integer i3=137;
Integer i4=137;
System.out.println(i1==i2);
test();
}
public static void test(){
String str=new String("abc");//jvm
//jvm String pool 'abc‘ , String ,
// String pool , String
String s="abc";
if(str==s){
System.out.println("str==s");
}else{
System.out.println("not");
}
String s3="abc";
// ,jvm String pool “abc" , s s3
// s s3
if(s==s3){
System.out.println("s==s3");
}else{
System.out.println("s!=s3");
}
}
}
즉, 하나의 문자열에 대해 어떤 조작이 되돌아오는 대상은 문자열 자체가 아니라 새로운 대상이다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.