ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • null 이란 무엇인가.
    CS-Theory 2022. 9. 29. 18:00

    null 을 왜 사용 할까?

     

    참고 자료 : https://www.youtube.com/watch?v=N08BSA3rwhU/ 

     

     

     

     

    1. 자바는 포인터가 없다?

    자바,c#  둘다 포인터가 없을 뿐이지 , 자바의 모든 오브젝트는 레퍼런스를 사용한다 즉 포인터 개념이다 .

     

    2. 포인터는 메모리주소를 저장 하는 변수이다.

    포인터가 null 을 가르킨다 =  아무것도 가르 키는게 없다. 

    => 포인터는 주소를 가르키거나 /  invalid 한 상태 (null)

     

    null 이 탄생한거는  변수를 표현하면서 상태를 표현이 가능하다.

     

    보통 함수는 리턴 값이 하나이다,  데이터가 없는 것을 어떻게 표현 할 것인가 ? ==  null 로 표현이 가능하다.

     -> boolean 으로 표현이 가능할텐데 함수를 하나 만들어서 상태를 판별 하는건 어떤가?

     

     -> api 에서는 함수 하나를 사요할때 다른 함수를 호출하는 것을 이상적으로 보지 않으므로 boolean 인지 판단 하는 함수를 추가로 만든다? 굳이?  리턴을 두번 한다고?

     

    정리 :

    장점 null 로  data 의 상태와 값을 알 수 있다.  오브젝트가 유효하다 아니다, 실재 값이 있다의 개념을 합친 것이다.

    단점:  함수를 까봐야안다.

     

    cf. exception 남용 금지 goto 를 쓰지 말라고 하는 것과 같다. 어디로 튈지 모른다 .  본인이 알고있는 라이브러리, 알고있는 무효한 값을 안다고 하면 그걸 처리하는 로직을 짜느게 이상적인 것 같다. 

     

     

    Java 에서 JVM 에는  GC 가 있는데 이를 이용하여 객체 =  null 을 사용해 메모리 누수를 막는 방법도 있다.

    또 다른 방법으로느 지역변수로 선언하면 GC의 범위에 속하게 되므로 전역 변수보다 지역변수로 선언하는 게 좋다.

    'CS-Theory' 카테고리의 다른 글

    Hash Map 보다 Array가 더 빠르다.  (0) 2022.09.29
    DB 기본 개념(Transaction)  (0) 2022.09.01
Designed by Tistory.