(2주차) JAVA 문법 종합반/2주차

12. 얕은 복사, 깊은 복사, string 배열

note994 2024. 7. 31. 16:29
//얕은 복사
int [] a = {1, 2, 3, 4};
int [] b = a; // a가 담고있는 "주소"를 담는것이다. 똑같은 "값"을 가지고 있는것이 아니다. 
// b를 통해 배열을 수정하면 a도 영향을 받는다.

b[0] = 3; // b 배열의 0번째 순번값을 3으로 수정했다.

System.out.println(a[0]); // a는 바꾸지 않았는데도 변경이 되었다.

// Arrays.copyOf() 메서드 깊은 복사
int[] a = {1,2,3,4};
int[] b = Arrays.copyOf(a, a.length); // 배열과 함께 length값도 같이 넣어준다.

a[3] = 0; // 깊은 복사방식이기 때문에 a를 바꿔도 b는 바뀌지 않는다.
System.out.println(a[3]);
System.out.println(b[3]);

//String 기능 활용 예시
String str = "ABCD";

int strLength = str.length(); // 4

char strChar = str.charAt(1) // 'B'

String strSub = str.substring(0, 3); // 0번째 부터 3 - 1 까지 -> ABC

String newStr = "ABCD";
boolean strEqual = newStr.equals(str); // 같으므로 true를 반환

char[] strCharArray = str.toCharArray(); // String을 char로 이루어진 배열로 반환해준다.

char[] charArray = {'A', 'B', 'C'};
String charArrayString = new String(charArray); // char로 이루어진 배열을 String으로 반환