[질문] 애플릿에서의 destory 호출 과연?
세나
import java.awt.*;
import java.applet.*;
public class Exam1201 extends Applet {
private static int init = 0;
private static int start = 0;
private static int stop = 0;
private static int destory = 0;
public void init() {
init++;
}
public void start() {
start++;
}
public void update(Graphics g) {
paint(g);
}
public void paint(Graphics g) {
String str = init = + init + , start =
+ start + , stop = + stop + , destory =
+ destory;
g.drawString(str, 50,100);
}
public void stop() {
stop++;
}
public void destory() {
destory++;
System.out.println(destory);
}
}
=========== 테스트 html 파일 ============
html
applet code = Exam1201.class width = 300 height = 150
/applet
/html
위와 같은 애플릿을 애플릿뷰어를 실행시켰다가 종료시키면 당연히 콘솔에 위 밑줄친 부분이 실행이 되서 destory 값 1 찍혀 나와야 하는거 아닌지요?
그리고 익스플로어로 저 클래스를 실행시켰을 때는 모든 익스플로어 창을 다 닫아야지만 destory() 부분이 호출된다고 들었습니다. 예전에 익스플로어는 이 페이지를 보다가 다른페이지를 보고 다시 애플릿이 포함된 페이지를 열었을 때 이 사이에도 destory() 메소드가 호출된다고 들었습니다. 현재 익스플로어(6.0)에서는 호출되지 않습니다 . 애플릿은 실행 웹브라우저에 어느정도 의존되어 실행된다고 들었습니다. 그렇다면 저 클래스를 처음 사용하였을 때 static 변수들이 메모리에 로딩되었다가, 모든 웹브라우저를 닫았을 때 자바가상머신이 완전히 종료되기 전에 destory 메소드가 호출되고 jvm이 종료된다고 봐야할까요? 그렇다면 어느정도 이해가 가는데..
위에서 애플릿뷰어를 실행시켰다가 애플릿뷰어의 종료(X) 버튼을 누르면 위의 destory 값이 콘솔에 찍혀나와야 어느정도 맞는 얘기 아닌지요?? 아무것도 찍혀 나오질 않습니다. 궁금해 미치겠는데 아무리 생각해도 저의 실력으로는 잘 모르겠습니다 ㅠㅠ;;