Published 2022. 8. 26. 10:53
반응형

자 이제 자바문법은 어느정도 다 알아봤습니다

 

근데 중요한게 이제 막 첫걸음 뗀거에요; 

좌절하지 마시고 차근차근 여러가지를 알아보도록 합시다 

 

자바에는 우리가 소스코드를 유용하게 사용할 수 있도록 도움을 주는 클래스들이 

많이 아주 많이 있습니다 

 

이 클래스들에 있는 기능들을 잘 사용하는것이 개발 잘하는 개발자 인것입니다 

잘 사용한다 라는것은 적재 적소에 사용하는것 이라고 할 수 있습니다 

 

아 이러한 업무가 있을때에 메모리를 적게 먹으며 처리속도까지 고려한다면 음 이번 업무는 

이 클래스를 이용하고 이러한 로직으로 구현하면 되겠구나 

 

이런 답이 먼저 나와야 합니다 물론 저도 아직 이렇게 나오진 않아요 그래서 아직도 공부를 하는중이죠 ㅜ

 

그러기 위해서는 유용한 패키지 안에 들어가있는 클래스 그안에 메서드까지 기본적인건 다 알아야하는겁니다

자 이제부터 정리 해보겠습니다 

 

먼저 자주 사용하는것부터 나열과 설명 해보겠습니다

 

		Person p1 = new Person();
		p1.setAddr("주소");
		p1.setAge(2);
		p1.setName("홍길동");
		
		Person p2 = new Person();
		p2.setAddr("주소123123");
		p2.setAge(222);
		p2.setName("룰루");
		
		Person p3 = new Person();
		p3.setAddr("주소는 안알랴줌");
		p3.setAge(33);
		p3.setName("랄라");
		
		//3개의 객체를 map에 저장하자 
		HashMap<String, Person> hm = new HashMap<>();
		
		hm.put("1", p1);
		hm.put("2", p2);
		hm.put("3", p3);
		
		if(hm.get("1").equals(hm.get("2"))) {
			
			System.out.println("같다");
		}else {
			System.out.println("다르다");
		}

equals는 오브젝트 클래스에 있는 메서드입니다 

 

이 메서드는 객체 자신과 매개변수 객체가 같은지 여부를 판단합니다 

위의 코드는 다르다 라고 나옵니다 

같은 클래스인데 왜 다른가 생각된다면 절대 틀린생각입니다 

객체를 생성하면 변수가 갖고있는건 참조입니다 객체 자체는 메모리에 올라가있는 상태이고 

그 객체의 메모리 주소 즉 참조를 갖고있는것이 변수이기때문에 우리는 생각을 달리해야합니다 

그리고 제가 정말 쉽게 실수하는것 중 하나인데 equals를 사용할때 주의할점이 있습니다

 

		if ( test.get("stringTest").equals("공백") ) {
			System.out.println("exception");
		}
		
		if ( "".equals(test.get("stringTest")) ) {
			System.out.println("no exception");
		}

위의 조건문과 아래의 조건문을 살펴보시면 위쪽의 조건은 exception이 나옵니다 

반면 아래 조건문은 나오지 않죠

앞에 들어가있는 "" 공백은 이미 값이 공백으로 들어가 있지만 위쪽 조건문을 보시면

값을 제가 넣지 않아버렸습니다 null로 집어넣었기 때문이죠 

null을 갖고 비교를 하려니 값 자체가 없으니까 exception이 나오는 것입니다

우리가 프로그래밍 할 때 이러한 실수가 자주 나오게됩니다 예상치 못하거든요 

무조건 값이 들어갈것이라고 생각했는데 그렇지 않습니다 

 

그래서 고정된 값 즉 비교할 값을 먼저 앞에 작성 해주시는것이 바람직합니다

 

equals 말고도 여러가지의 메서드가 있는데 그건 다음시간에 알아보도록 하겠습니다

반응형

'Developer > Java' 카테고리의 다른 글

[java]Object클래스  (0) 2022.09.08
[java] hashmap 오름차순, 내림차순정렬  (0) 2022.08.29
[java] 제네릭  (0) 2022.08.25
[java]컬렉션즈 프레임워크  (0) 2022.08.22
[java] 예외처리  (0) 2022.08.18
복사했습니다!