질문에 앞서
- 프로그램을 만들때 모든 객체는 해당 클래스가 존재해야 하며,
해당 클래스를 사용하기 위해서는 반드시 해당 클래스를 import 한 후 new 를 통해 생성해야 한다.
질문
- 그렇다면, String , int 등 주로 사용하는 객체들은 왜 new 로 객체생성을 하지 않아도 사용이 되는 것인가?
질문의동기
- 사실 이 질문은 Spring beans 의 DI 를 공부하다가 궁금하여서 찾아보게 되었다.
답변 : java.lang.Objec 클래스
- 모든 클래스는 그 선언과 동시에 Object 클래스를 상속받게 된다. ( 자동으로 )
Sample
public class _String {
public static void main(String[] args) {
String str1="aa";
System.out.println("str1 =>"+str1.hashCode());
int i1=0;
int i2=2;
System.out.println("int"+ (i1+i2));
}
}
위 Class 에서 _String 뒤에는 extends Object 가 숨겨져 있는 것이다.
public class _String -> public class _String extends Object {
---------------------------------------------------------------------------------
https://docs.oracle.com/javase/8/docs/api/
public class Object
Class Object is the root of the class hierarchy.
Every class has Object as a superclass.
All objects, including arrays, implement the methods of this class.
아주 기본적인 사실이지만, 또 이렇게 배운다.
점점 기억력이 약해지는듯 하다.
모든것을 기록해야 한다.
'Java > java.lang.Object' 카테고리의 다른 글
String 에 대한 고찰 (0) | 2021.06.25 |
---|---|
== equals 무엇이 다른 것인가 ?? (0) | 2021.06.24 |
java.lang.Object 의 위치(Position) (0) | 2021.06.24 |