-
0. JAVA 기초 (5)JAVA Spring 2020. 3. 7. 15:20
- Object Class : 모든 클래스가 상속하는 최상위 클래스 (java.lang.Object Class)
Object Class 안에 있는 Method를 알아보자.
1. toString() : Object 내의 string을 출력
2. equals() : Object 내의 값이 같은지 비교. (Primitive가 아니면 overriding해서 다시 써야함)
3. hashCode() : 인스턴스의 가상머신 주소를 10진수로 바꿔 반환함. (결국 주소를 반환)
==, equals, hashCode의 비교.
*결국 equals, hashCode를 모두 비교해야 완벽하게 같은 것을 알 수 있다.
[Link] : https://jeong-pro.tistory.com/172
자바 equals(), hashCode(), == 연산자 비교 및 개념 정리하기(객체 비교 구문 커스터마이징하는 방법)
자바에서 각각 객체가 동일한지 확인하는 방법 자바 프로그래밍에서 객체가 동일한지 확인하는 분기문은 상당히 많이 작성할 것이다. 예를 들면 '==' 연산자로 비교할 수도 있고 'equals()', 'hashCode()' 로 비교..
jeong-pro.tistory.com
4. clone() : 객체를 그대로 복사. informaiton hiding에 위배될 수 있으므로, clonable interface를 명시해야함.
clone 함수의 overriding은 Source에서 자동 생성할 수 있다.
class Book implements Clonable { // Clonable interface를 받아야한다. ... } public class Test { public static void main(String[] args) throws CloneNotSupportedException { // 명시 Book book2 = (Book)book.clone(); ... } }
5. finalize() : Garbage Collector가 Memory를 비울 때 호출되는 함수
- String : immutable하다. 상수처럼 변하지 않는다. 따라서 String 은 Concat 또는 '+' 했을 때, 새로운 메모리에 합쳐진 String이 생성되기 때문에 메모리 낭비를 야기할 수 있다.
- StringBuilder / StringBuffer : 가변적 char[] 배열을 멤버 변수로 가지는 클래스. concat되었을 때 메모리를 새로 생성하지 않는다.
- StringBuffer는 멀티 쓰레드 환경에서 Synchronization이 보장된다.
- toString()으로 String을 반환한다.
StringBuilder buffer = new StringBuilder("java"); buffer.append("android"); System.out.println(buffer.toString());
- Wrapper Class : 기본 자료형에 대한 클래스. 객체화를 할 때 쓴다.
'JAVA Spring' 카테고리의 다른 글
0. JAVA 기초 (7) (0) 2020.03.07 0. JAVA 기초 (6) (0) 2020.03.07 0. JAVA 기초 (4) (0) 2020.03.06 0. JAVA 기초 (2) (0) 2020.03.06 0. JAVA 기초 (1) (0) 2020.03.05