inflearn logo
강의

Course

Instructor

Kim Young-han's Java Tutorial - Your First Step into Java with Code

Variable Declaration and Initialization

섹션2 변수초기화 질문드립니다 (7분경)

Resolved

570

nimo62895491

54 asked

2

변수를 초기화할 때, int a; 라고 하면 a가 메모리상 어딘가에 할당이 되어야하고, 여기에 어떤 값이 들어가있을지 모른다고 하셨는데... 그러면 모든 메모리는 꽉차있는 상태에서(?) 작업을 할 때 덮어 씌워지는 형태로 할당이 진행되나요 ??

메모리에 올라가있는 값을 왜 안빼는지도 궁금합니다. 값을 삭제해주지 않으면 더 많은 메모리를 사용해야할 때 빈공간이 어딘지 몰라서 어렵지 않을까요 ??

java 객체지향

Answer 4

3

codetrain999

안녕하세요. 팡휘님, 공식 서포터즈 코즈위버입니다.

메모리를 해제할 때 값을 비우지 않는 이유는 값을 비우는 행위도 연산이기 때문입니다.

값을 비운다는 행위는 결국 메모리에 있는 데이터를 널문자로 덮의씌운다 의미이므로 CPU 리소스를 사용합니다. 그래서 이런 작업을 생략합니다.

tonster96님 말씀처럼, 메모리를 사용하기 전에는 반드시 초기화를 진행해야 하는데요, 클래스의 멤버변수인 경우 이 초기화 과정을 자동으로 처리해주기도 합니다 :)

감사합니다.

1

tonster96

운영체제는 실행되는 모든 프로그램을 관리하며 메모리 사용을 관리하고 프로그램들은 필요한 메모리 공간을 운영체제에서 할당받아서 사용합니다. 위에 선언은 정수형 자료를 담을 수 있는 공간에 접근할 권한만 받은 상태이고 대부분의 경우 다른 프로그램에서 이미 사용되어서 알 수 없는 어떤 값(쓰레기값)이 남아있는 상태입니다. 그렇기에 요즘은 반드시 초기화를 해야만 사용할 수 있게 되어 있습니다. 그리고 이전에 다른 프로그램이 사용한 메모리라도 사용권한을 받은 프로그램만 접근할 수 있고 프로그램이 종료되면 사용권한이 운영체제에 회수되어 더 이상 사용할 수 없기 때문에 굳이 메모리에 남아있는 값을 없애는 수고(?)를 하지 않고 있습니다.

1

chelim20028121

코드가 끝나면 할당되었던메모리는 다시 사라집니다

0

nimo62895491

답변 정말 감사합니다 !!

문제와 풀이4 문제점

0

32

2

문제풀이 시간마다 방향성

0

31

2

피라미드 문제 풀이

0

67

1

ScannerWhile3 예제 코드 질문

0

50

1

짝수 출력 문제 질문

0

47

1

Array 연습 문제 5번 질문입니다.

0

81

2

단축어가 이상하게 나옵니다

0

127

2

Sql강의

0

82

1

array 문제풀이 2번 질문입니다.

0

53

1

JAVA입문 / 메서드편 문제와 풀이2

0

44

1

인텔리제이 무료버젼이 통합되었다는데 30일 무료버전이면 어떻게 사용하나요

1

771

3

OperationEx3에서 꼭 boolean을 써야 하나요?

0

56

1

for, while문 작성

0

63

1

68강 ArrayEx6 클래스 질문

0

56

1

IO.println(String.format("Hello and welcome!"));

0

140

2

소스코드 실행이 안돼요

0

114

2

메서드 문제와 풀이2에서 마지막 문제 이렇게 풀어도 괜찮은 건가요..?

0

77

1

While과 for 스코프 질문

0

59

1

김영한 java 입문 설치 질문

0

135

2

버퍼문제?

0

50

1

for문 피라미드 찍는거 질문

0

74

1

21버전이 없고, 강의 메뉴얼 확인해보면 된다는 김영한 선생님 답변 확인했습니다.

0

366

1

3번 문제 질문 있습니다.

0

93

2

sout에는 변수가 하나만 들어가야 하나요?

0

131

1