자바에서 메소드에 값을 전달하는 방법과 가비지 컬렉션에 대해 알아볼께.

메소드에 값 전달(Argument passing) 하기

자바는 메소드에 값을 전달할 때 값-전달(call by value) 방법을 사용하는데 실 매개 변수의 형에 따라 다른 결과를 나타내.

자바는 8개의 기본 자료형을 제외하고는 모두 참조 자료형인데 실 매개 변수가 기본 자료형인 경우에는 실 매개 변수의 값을 형식 매개 변수에 복사하고 형식 매개 변수의 값이 변화되어도 실 매개 변수의 값은 변하지 않아.

실 매개 변수가 참조 자료형인 경우에는 실 매개 변수(객체)의 주소를 형식 매개 변수에 복사하고 형식 매개 변수의 값이 변화되면 실 매개 변수의 값이 변하게 돼. 즉 call by reference 효과가 나타나는 거지.

실 매개변수와 형식 매개변수로 기본 자료형이 사용되는 경우의 값-전달 기법
실 매개변수와 형식 매개변수로 참조 자료형이 사용되는 경우의 값-전달 기법

아래는 메소드에 값을 전달하는 예제 코드야.

class ParaPassing1 {
  public void change(int i, int j[], StringBuffer sb) {
    i = 20;
    j[3] = 400;
    sb.append("알기쉽게 해설한 자바!");
  }

  public void display(int i, int j[], StringBuffer sb) {
    System.out.println("객체 속성 변수 i의 값" + i);
    System.out.print("배열의 값 : ");
    for(int index=0; index<j.length; index++) {
      System.out.print(j[index] + "");
    }
    System.out.println("");
    system.out.println("문자열 sb의 값: " + sb);
  }
}

class ParaPassingDemo1 {
  public static void main(String args[]) {
    ParaPassing1 cb = new ParaPassing1();
    int 1 = 10;
    int j[] = {1, 2, 3, 4};
    StringBuffer sb = new StringBuffer("배우기 쉽죠?");
    System.out.println("첫번째 display() 메소드 호출");
    cb.display(i, j, sb);
    cb.change(i, j, sb);
    System.out.println("===========================");
    system.out.println("값을 변환한 다음 두번째 display() 메소드 호출");
    cb.display(i, j, sb);
  }
}

finalize 메소드와 가비지 컬렉션(garbage collection)

JVM(자바 가상 기계)은 효율적인 시스템 운영을 위해 더 이상 필요없는 객체들을 대상으로 가비지 컬렉션을 자동으로 수행하는데 JVM은 가비지 컬렉션을 수행하기 전에 그 객체의 finalize() 메소드를 호출하게 돼.

즉 사용자는 클래스 생성시에 finalize() 메소드를 이용하여 객체에서 사용된 파일이나 소켓 같은 자원들을 반납하는 과정을 기술 할 수 있는 거지.

가비지 컬렉션의 finalize() 메소드 예제 코드는 아래와 같아.

protected void finalize() throws Throwable {
  items = null;
  super.finalize();
}

Share This Post

Leave a Reply

Your email address will not be published. Required fields are marked *

Latest Post

  • Criss Cross Crossover Crunch Flutter Kicks Heel Touch Knees Up Crunch Legs Lower Plank Side Plank Superman Arms Up Crunch Aquaman Catch Dish Oblique Crunch
  • Businesses can survive by constantly generating revenue by selling goods or services. Companies that do not have sales or profit can not survive. So it
  • Amazon CEO Jeff Bezos sends letters to shareholders every year. This letter contains Amazon’s current achievements and future vision. He also enclose that the first
  • A middle-aged man came to Pastor Norman Vincent Peale one day to ask him for counseling. The dejected man told Pastor Norman Vincent Peale. “Pastor,
  • I have been working as an IT freelancer for over 10 years and have had a chance to work with various clients. Working freelance, I
  • CNBC analyzed the minutes of the Berkshire Hathaway shareholders’ meeting to find out why Warren Buffett could be an excellent investor. It is already known,
  • Good timing is like a good choice. So what is ‘good choice’? A good choice is to decide what you need to do first. That
  • We learned that in childhood we should brush our teeth immediately after eating rice. However, this is a common misconception in the days when common
  • In most cases, it is important for novice marketers to work efficiently by reducing the waste of work and increasing focus. He will not used
  • source: vornado.com The circulator is the abbreviated name for ‘air circulator’. The air circulator actually has a different purpose than the fan. Unlike a fan