public class Example4 {
public static void main(String[] args) {
String[] str1 = {"java", "python", "c-language"};
String[] str2 = {"java", "python","c-language"};
String[] str3;
str3 = str2; //얕은복제 : 같은 기억 장소를 가르키고있음(주소만복제)
String[] str4 =new String[5];
System.out.println(str1==str2); //주소비교로 인해 false
System.out.println(str2==str3); //str3주소에 str2주소를 복사한거라 true
System.out.println(str2);
System.out.println(str3);
//깊은복제 : 다른 기억장소를 가르키도록 데이터를 복제(데이터를 heap에 갖고옴)
System.arraycopy(str2, 0, str4, 0, str2.length);//str2의 위치 0번째부터 복사를한다 str4의 0번째부터 붙여넣는다 str2의 길이까지
System.out.println("\n"+str4);
for(String data:str4){
System.out.println(data);
}
}
}
출력결과
false
true
[Ljava.lang.String;@15db9742
[Ljava.lang.String;@15db9742
[Ljava.lang.String;@6d06d69c //str4의 주소 System.out.println("\n"+str4);
java //for(String data:str4){ System.out.println(data); } 의 값
python //뒤에 null 두개는 str4를 만들때 길이가 5인
c-language //배열로 만들었는데 str2는 3개짜리 배열
null //이라 null로표시되었음
null
public class Selection_sort {
public static void main(String[] args) {
int[] arr={70,50,90,80,40,60};
//=> {40,50,60,70,80,90}오름차순
//=> {90,80,70,60,50,40}내림차순
//오름차순으로 그 결과를 정렬하여 출력
int orm;
for(int x=0;x<arr.length;x++){
for(int y=(x+1);y<arr.length;y++){
if(arr[x]>arr[y]){
orm=arr[x];
arr[x]=arr[y];
arr[y]=orm;
}
}
}
for(int data:arr){
System.out.println(data);
}
결과값
40
50
60
70
80
90