Java/java.lang.Object

Object class , 숨겨진 최상위 객체

고인돌개발자 2021. 6. 20. 22:07

질문에 앞서 
  -  프로그램을 만들때 모든 객체는 해당 클래스가 존재해야 하며,
     해당 클래스를 사용하기 위해서는 반드시 해당 클래스를 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/

 

Java Platform SE 8

 

docs.oracle.com

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