본문 바로가기
728x90
반응형

지역변수2

19) 객체지향-변수의 초기화, 멤버변수의 초기화 19) 객체지향-변수의 초기화, 멤버변수의 초기화 19-1) 변수의 초기화 -지역변수(lv)는 수동 초기화해야 함(꼭!!!) method메서드에서 지역변수 i의 값을 모른 상태로 j에 대입하니 오류가 발생합니다. 인스턴스 변수는 직접 초기화하지 않아도 0으로 초기화됐었잖아요? 지역변수는 꼭 직접 초기화해야 합니다. 왜 그럴까요? 호출 스택은 쌓였다가 없어졌다가 메모리가 재사용이 빈번합니다. 그럼 메서드가 호출될 때마다 0으로 호출하면 성능이 떨어져요. 성능을 높이려고 항상 0으로 초기화 안 하고요. 새로운 값으로 덮어쓰는 방식으로 처리합니다. 지역변수의 경우, 메서드를 호출하는 경우에만 사용하기 때문에 짧게 쓰여요. 생명주기가 짧아요. 그런 변수를 0으로 자동 초기화시킨다? 메모리 낭비가 너무 심하죠. .. 2021. 5. 26.
7)객체지향-선언 위치에 따른 변수의 종류 7) 객체지향-선언 위치에 따른 변수의 종류 선언 위치에 따라 변수는 3가지로 나눠집니다. 어느 변수를 먼저 쓰든 순서는 상관없습니다. 영역 변수 종류 생성시기 클래스영역(클래스 시작부터 끝까지: 선언문만 가능 인스턴스변수 (instance valiable: iv) 인스턴스가 생성되었을 때 클래스변수 (class valiable: cv: 인스턴스변수 앞에 static붙인것) 클래스가 메모리에 올라갈 때 클래스영역 이외의 영역(메서드, 생성자, 초고화블럭 내부) 지역변수 (local valiable: lv) 변수 선언문이 수행되었을 때 -lv는 메서드 영역 내에서만 써야 합니다. iv와 변수 이름이 같다 해도 서로 다른 변수라는 걸 잊지 마세요. -iv의 생성시기는 인스턴스가 생성되었을 때인데, 즉 객체가.. 2021. 5. 11.
728x90
반응형