Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 월별 카운트
- 0x
- function
- SQL
- mysql
- array
- application.mk
- cocos2d-x
- Get
- C++
- 강좌
- 파일존재
- Java
- solution
- Join
- android studio
- Call
- halliday
- php
- 점점변하는값
- 하이퍼 터미널
- Avr
- selectc
- 현재언어
- Post
- PORTG
- is_array
- mathemetica
- 단축키
- unalias
Archives
- Today
- Total
코딩도사의 코드정리
자바의 변수 수명 본문
자바에서는 수명이 다한 클래스의 할당도 어딘가에서 참조 하고 있다면 계속 물고 늘어지는 경향이 있다
A 라는 클래스가 있으면
A foo;
{
A bar = new A();
foo = bar;
} // 여기서 bar 의 수명은 끝이남.
foo.call(); // 과연 에러가 날까?
에러가 안난다. 컴파일에러 및 런타임 에러도 나지 않는다.
자바에서는 내부적으로 참조 카운터를 써서 주소를 다른곳에서 참조하고 있다면 파괴되지 않고 계속 쓰는거 같다.
만약 C++ 였다면? 런타임 에러가 낫겠지.
나는 이것이 좋다고만 보지 않는다. 변수 스코프를 저기서 끝내도록 했으면 프로그래머가 그 뒤론 이 변수를 더 이상 쓰지 않겠다는 의미로 블록을 썼을텐데.
모르는 다른곳에서 나도 모르게 이것을 쓰고 있다면 자칫잘못하면 치명적인 에러로 발전할 수 있기 때문.
뭐 C++ 에서도 지역변수를 포인터로 얻어와서 써도 에러가 나지 않는 경우도 많긴 함.
'컴퓨터 이야기 > JAVA' 카테고리의 다른 글
android studio 단축키 (0) | 2015.12.16 |
---|---|
java string int 형변환 (0) | 2015.12.15 |
android AlertDialog 띄우기 (0) | 2015.12.15 |
어제 수요일에 자바 스터디 모임을 가졌습니다. (0) | 2010.06.24 |