Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

Everything has an expiration date

128 - Java 자바의 주요 클래스 : 동등 연산자(==)의 값의 크기 비교(primitive 타입), 주소값 비교(reference 타입), 해시코드(Hashcode) 본문

[Java]/Program source (java)

128 - Java 자바의 주요 클래스 : 동등 연산자(==)의 값의 크기 비교(primitive 타입), 주소값 비교(reference 타입), 해시코드(Hashcode)

Jelly-fish 2023. 9. 15. 16:55
/*==============================================
  ■■■ 자바의 주요(중요) 클래스 ■■■
  - 자바에서 기본적으로 제공하는 주요 클래스들
  - Object 클래스
================================================*/

class Test
{
	private int a = 10;

	public void write()
	{
		System.out.println("a : " + a);
	}
}


public class Test128
{
	public static void main(String[] args)
	{
		// 객체 타입
		Test ob1 = new Test();
		Test ob2 = new Test();

		System.out.println("10 == 9 : " + (10 == 9));
		//--==>> 10 == 9 : false

		int a = 10;
		int b = 10;
		System.out.println("a == b : " + (a == b));
		//--==>> a == b : true

		
		// ※ 『==』 비교 연산자는 피연산자의 크기를 비교함을 확인(관찰)

		// ★☆★ 【Heap영역에 저장된 ob1 객체의 주소값과 ob2 객체의 주소값이 다르다~!!】★☆★
		System.out.println("ob1 == ob2 : " + (ob1 == ob2));
		//--==>> ob1 == ob2 : false

		// ※ 객체(Object)들을 비교하는 과정에서 사용하는 『==』 연산자는
		//    크기를 비교하는 것이 아니라 대상 객체의 주소를 비교
		

		System.out.println();
		System.out.println("----------------------------------------------------");
		System.out.println();


		System.out.println("ob1            : " + ob1);
		System.out.println("ob1.toString() : " + ob1.toString());
		//--==>> ob1            : Test@15db9742
		//       ob1.toString() : Test@15db9742


		System.out.println("ob2            : " + ob2);
		System.out.println("ob2.toString() : " + ob2.toString());
		//--==>> ob2            : Test@6d06d69c
		//       ob2.toString() : Test@6d06d69c
	

		// 『클래스명@해시코드』

		// ※ 해시코드(hashcode)
		//   : 자바 내부적으로 객체를 구분하기 위해 사용하는 것.
		//     메모리의 주소값으로 생각하면 절대로 안 된다.

		// 해시코드가 다르다는 건... → 서로 다른 객체임을 의미
		// 반대의 경우는 성립 x → 해시코드가 같다고 해서 같은 객체가 아니다!


		// ※ 객체가 같으면 hashcode(해시코드)가 같지만
		//    hashcode(해시코드)가 같다고 같은 객체는 아니다.



	}
}