728x90
300x250

[Java] Deep Copy & Shallow Copy

 

1. 개념(Concept)


 

2. 소스 코드

 

class Account implements Cloneable{

        private String accnum;
        private int balance;

 

        public void setNum(String accnum)
        {
             this.accnum = accnum;  
        }

        public String getNum()
       {
            return this.accnum;
       }
 

         
       protected Object clone()
       {

 

               try{
                    Account account = (Account)super.clone();
                    return account;
               }
              catch(CloneNotSupportedException e)
              {
                   e.printStackTrace();
              }
              return null;
       } 

}

 

Source) Account.java

 

public class Program
{

      public static void deepcopy()
     {
              Account source = new Account();
              source.setNum("111");

 
             Account target = (Account)source.clone(); // clone()은 Overliding으로 구현.
  
              System.out.println( "소스원본:" + source.getNum() );
              System.out.println( "대상-깊은 복사:" + target.getNum() );

 

              System.out.println( "원본값 계좌번호 변경 333\n" );


              source.setNum("333");


              System.out.println( "소스원본:" + source.getNum() );
              System.out.println( "대상-깊은 복사:" + target.getNum() + "\n" );
       }


       public static void shallowcopy()
       {
              Account source = new Account();
           source.setNum("111");

 

              Account target = source;
  
              System.out.println( "소스원본:" + source.getNum() );
              System.out.println( "대상-얇은 복사:" + target.getNum() );

 

              System.out.println( "원본값 계좌번호 변경 333\n" );
              source.setNum("333");


              System.out.println( "소스원본:" + source.getNum() );
              System.out.println( "대상-얇은 복사:" + target.getNum() + "\n" );
       }

 

       public static void main(String args[])
       { 
              System.out.println("--- 1.깊은 복사------------------");
           deepcopy();

 

              System.out.println("--- 2.얇은 복사------------------");
            shallowcopy();
       }

}

 

 

 

Main Source) Program.java

 

3. 동작 결과

 

 


이해가 되었으면 합니다.^^

 

[첨부(Attachment)]

Sample-copy.zip

 

반응형
728x90
300x250

Centos 4, 5에서 Java SE 설치하기.

jdk-6u14-linux-i586-rpm.bin 이 파일을 다운받아야 합니다.
주소 : http://developers.sun.com/downloads/top.jsp


1. 설치 방법



설치방법

1. 터미널에서 다음을 입력합니다.
vi /etc/inittab

id:5:initdefault를
id:3:initdefault로 바꿔줍니다.

2. 재부팅합니다.
3. 해당 다운로드 받은 파일의 위치로 이동합니다.
4. ./jdk-6u14-linux-i586-rpm.bin을 입력합니다.

오류가 뜰것입니다. 오류가 뜬다면 정상입니다.
-> chmod 755 jdk-6u14-linux-i586-rpm.bin(파일명)
권한을 부여해줍니다.

5. ./jdk-6u14-linux-i586-rpm.bin를 입력합니다.
6. 엔터를 계속누르다보면 'Yes'를 입력하라고 뜹니다.
Yes라고 입력한 후 엔터키를 누릅니다.
7. 설치가 진행됩니다.
8. 설치가 완료가 되었습니다.

- 참고 -
설치 후에 RPM파일이 여러개가 생성이 되는데 지우셔도 상관없습니다.
(왜냐하면 설치마법사를 통해 RPM들을 모두 설치하였기 때문입니다.)
반응형

+ Recent posts