Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 삼항 연산자
- 비정방행렬
- print()
- 다차원배열
- 명명규칙
- 순환문
- 안드로이드스튜디오
- array
- 기본형호출
- 논리 쉬프트 연산자
- 다중if
- Java
- 자바
- 참조형호출
- for문
- 비교연산자
- 대입 연산자
- 변수유효범위
- 사용자입력Switch문
- dowhile문
- 콘솔출력문
- 산술 쉬프트 연산자
- println()
- 비트논리연산자
- 단순if
- 문자열
- 타입변환
- 배열
- 증감연산자
- while문
Archives
- Today
- Total
신입개발자
문자열2 본문
package pk20;
import java.util.Arrays;
public class 문자열2 {
public static void main(String[] args) {
// 일반적으로 참조형의 복사는 주소복사이므로 내용 수정시 공유된다
// 그러나 문자열 참조형은 내용 수정이 불가능하여 수정시 새주소의 문자열을 만든다
//A) 배열 참조형의 주소복사와 수정
int[] a1 = new int[] {10,20,30};
int[] a2 = a1; // 배열복사는 주소복사
System.out.println("a1 = " +Arrays.toString(a1)); //[10, 20, 30]
System.out.println("a2 = " +Arrays.toString(a2)); //[10, 20, 30] a1의 힙 내용을 공유
a2[0] = 40;
a2[1] = 50;
a2[2] = 60;
System.out.println("a1 = " +Arrays.toString(a1)); //[40, 50, 60]
System.out.println("a2 = " +Arrays.toString(a2)); //[40, 50, 60], a1과 a2는 힙내용을 공유
System.out.println();
//B) 문자열 참조형의 주소복사와 수정 불가로 인한 새 문자열 생성
String s1 = new String("Hello");
String s2 = s1; // 주소복사
System.out.println("s1 = " + s1); //Hello
System.out.println("s2 = " + s2); //Hello, 같은 주소 공유
s1 = "world"; // 문자열은 수정되지 않는다!! 다만 새문자열을 만들뿐..
System.out.println("s1 = " + s1); //world, 새공간의 주소가 할당되었다.
System.out.println("s2 = " + s2); //Hello, 주소가 달라 더이상 공유되지않는다
}
}
Comments