개발/Android Studio(Kotlin)

JAVA 변수, String만 대문자로 시작하는 이유!

기디개 2022. 6. 24.
반응형

글 내용 출처: 하단 참고 / 문제 될 시 삭제!

int, long, float, double 같은 타입과 String은 조금 차이가 있습니다.

메모리에서의 관리가 달라지는데요, 비유를 들어 설명드리겠습니다.

.

변수를 박스라고 하겠습니다. int, long 같은 변수는 박스안에 바로 필요한 물건들을 넣어놓고, 필요할때마다 찾아서 쓰는 방식이라고 할 수 있습니다. 이런 변수를 원시타입 (Primitive Type) 이라고 합니다.

.

반면 String은 박스안에 물건을 넣는것이 아니라, 내가 찾아가야할 주소만 담겨 있습니다. 그래서 박스를 까서 주소를 확인하고 그 주소까지 찾아가면 비로소 내가 필요한 물건을 찾을 수 있습니다. 이런 변수는 참조형 이라고 합니다. 혹시 포인터 라는 걸 들어보셨는지요? 사람들이 C언어를 공부할 때 공포의 대상이라는 그 포인터가 바로 이 자바의 참조형입니다.

.

여기까지 들으면 String은 사용하기 불편할것 같습니다. 값을 바로 쓸 수 없고 주소를 보고 찾아가는 과정이 추가되었으니까요. 왜 이런 방법을 사용할까요? 그 이유중 하나는 프로그램을 만드는 단계에서는, 프로그램을 실행할 때 얼마만큼 많은 메모리가 필요한지 예측할 수 없기 떄문입니다. 

.

가령 엑셀파일을 읽어서 그래프로 만드는 프로그램을 작성한다고 하겠습니다. 근데 엑셀 파일의 크기는 얼마나 될까요? 개발단계에서는 이걸 알 수 없습니다. 또 엑셀파일마다 크기가 모두 다르겠죠? 그러니 어떤 일정한 크기라고 단정할 수 없습니다. 그럼 모든 엑셀파일이 들어갈만한 메모리를 미리 잡아놓으면 어떨까요? 그렇게 되면 메모리 낭비가 심해집니다. 그래서 프로그램은 유연하게 메모리를 확보하는 기능이 필수적으로 필요합니다. 그리고 이것에 최적화된 방법이 참조형 입니다.

 

인프런 무료 강의 (2. 자바의 핵심 - 객체지향 프로그래밍 - 클래스와 객체1 (1)에 달린 답변)

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%9E%85%EB%AC%B8/dashboard

 

[무료] Do it! 자바 프로그래밍 입문 - 인프런 | 강의

비전공자, 문과생도 무릎을 ‘탁!’ 치며 이해하는 20년 경력 명강사의 자바 강의!, - 강의 소개 | 인프런...

www.inflearn.com

 

반응형

댓글

💲 추천 글