본문 바로가기
java

Object class

by improve 2024. 1. 31.

finalize 메소드를 사용 하여 오버라이딩 할  수 있다.

package org.example;


public class Person {


    private String name;

    public Person(String name) {
        this.name = name;
    }

    @Override
    protected void finalize() throws Throwable {
        super.finalize();
        System.out.println("destroyed" + name);
    }
}

 

 

package org.example;

public class Main {
    public static void main(String[] args) {

        Person p1 = new Person("park");
        Person p2 = new Person("yoon");

        p1 = null;
        p2 = null;

        // Oracle 이거 쓰지마.
        System.gc();  //가비지 컬렉션 힙영역 직접 삭제해라
        System.runFinalization(); //소멸 시에 호출되는 함수 실행해라.

        System.out.println("end of program");
    }
}

 

가비지 컬렉션 힙영역을 삭제 할 수 있다.

 

 

equals 를 사용해서 비교 할 수 있다.

 

package org.example;

public class INum {

    private int num;

    public INum(int num) {
        this.num = num;
    }

    @Override
    public boolean equals(Object obj) {
//        return super.equals(obj);
        return this.num == ((INum)obj).num;
    }
}

 

return 의 두개는 똑같은 뜻이다.

 

package org.example;

public class Main2 {

    public static void main(String[] args) {


        INum iNum1 = new INum(10);
        INum iNum2 = new INum(10);
        INum iNum3 = new INum(13);


        System.out.println(iNum1);
        System.out.println(iNum2);
        System.out.println(iNum3);

        System.out.println(iNum1 == iNum2);
        System.out.println(iNum1.equals(iNum2));



    }
}

 

하게 되면 마지막 두개의 출력은 false,와 true 이 뜨는걸 확인할 수 있다.

 

 

package org.example;

public class Main3 {

    public static void main(String[] args) {
        String str1 = new String("so simple");
        String str2 = new String("so simple");

        String str3 = "so simple"; //같은 힙영역
        String str4 = "so simple";


        System.out.println(str1.equals(str2)); // 내용이 같은지 확인
        System.out.println(str3 == str4);
    }
}

 

 

String 메서드를 사용해서 equals 를 나타낼 수 있다.

'java' 카테고리의 다른 글

래퍼 클래스  (0) 2024.01.31
clone 메서드  (0) 2024.01.31
JAVA 의 메모리 모델  (0) 2024.01.31
컬렉션  (0) 2024.01.30
제네릭의 사용이유  (1) 2024.01.29