[Spring#48] Boolean? boolean?, 영속성 컨텍스트 / 알고리즘 : 색종이

김한준 Hanjun Kim·2023년 12월 15일
1

내일배움캠프

목록 보기
49/70

Boolean? boolean?

  • 오늘 알고리즘을 풀다가 처음에는 아무생각없이 Integer나 String처럼 래퍼클래스인 Boolean을 사용하려 했다.

  • 하지만 알아보니 Boolean과 boolean은 차이가 있었다.

  • Boolean

    • 참조형 ( reference type ) , 참조값 ( 주소 ) 을 가진다.
      null을 담을 수 있다.
      👉 메모리나 성능면에서는 기본형인 boolean이 우수하지만

       null을 담아야하거나 제너릭을 사용해야한다면 Boolean 타입을 사용하는 것이 좋다!
  • boolean

    • 기본형 ( primitive type ) , 메모리에 직접 값을 저장
      null을 담을 수 없으며 true,false만 담을 수 있다.

영속성 컨텍스트

  • Jpa 강의에서 자주 나오는 개념이고, 아직 잘 이해하지 못하겠어서 따로 정리해서 공부하려고 한다.

  • 키워드만 몇가지 써놓고 다음 TIL에서 정리 할 예정이다.

jpaRepository에서 삭제할때
- 바로 삭제하는게 아닌 em을 통해 영속성 상태인지 확인

persist -> 1차캐시, 영속성 컨텍스트에 저장인 상태 -> flush로 DB에 전송 -> commit, 실제 DB 저장

커스텀? jpa 메서드
Repository 기능 추가하기 << 다시 공부하기

알고리즘

깃허브 링크 : https://github.com/wkdehf217/codingTest/tree/main/%EB%B0%B1%EC%A4%80/Silver/2563.%E2%80%85%EC%83%89%EC%A2%85%EC%9D%B4

이번 문제는 백준 문제이다.

  • 원래 계획
    • Boolean 배열을 선언해서 true 인 곳만 체크해서 넓이를 구함
    • 반복문을 돌면서 주어진 개수만큼 map에다가 true값 대입
    • 다시 map을 반복문을 돌리면서 넓이를 구함
  • 어려웠던 점
    • Boolean과 boolean의 차이를 몰라서 또 반복문을 통해 map에다가 true를 넣는 작업을 수행
    • 입력받음과 동시에
    if (!map[j][k]) {
    	map[j][k] = true;
    	count++;
    }
    이런식으로 하면 되는데 굳이 반복문을 3번이나 씀
  • 해결방법
    • boolean으로 선언하면 기본값이 false
    • 입력과 동시에 확인하면서 카운팅
profile
개발이 하고싶은 개발지망생

0개의 댓글