2013-11-03 4 views
0

저는 Java에 익숙하지 않으며 JVM이 작동하는 순서를 이해하려고합니다. 다음 쿼리가 있습니다.런타임에 정적 변수를 메모리에 할당 할 수 있습니까?

1) 런타임에 클래스를로드 할 수 있습니까?

2) 런타임 중에 정적 변수를 메모리에 할당 할 수 있습니까?

3) Java에서 함수 내에서 정적 변수를 정의 할 수없는 이유는 무엇입니까? 당신이 설명 할 수있는 경우 error.It 도움이 될 것입니다 줄 것이다 방법 안에 기록 정적이 예에서는

public class Test{ 
      public static void main(String[] args)throws IOException { 
      static int d; 
    } 
} 

: 당신이 아래에 주어진 예제의 도움으로 나를 설명 할 수있는 경우

이 될 수 있습니다 위의 컨텍스트를 참조하십시오.

답변

1

단순히

  1. 예 응답
  2. 예/당신은 런타임에 자바 클래스를로드 할 수 있습니다
    1. 없음

    자세한 내용

    은, 일반적으로이 Classloader
  3. 를 통해 수행되지 않습니다 모든 정적 변수는 실제로 차 실행시 JVM (안하면)에 의해 초기화, 당신이 그들을 사용하는 보통 직전에,이 답변 체크 아웃 : Order of initialization of static variable in Java

또한 다시 할당 할 수 없습니다 새 값/메모리 등으로 코드에서 최종 정적 변수 :

static String a = "a"; // default value to be used by JVM during init 
public static void main(String[] args) 
{ 
    System.out.println(a); // will print a, as JVM already initialized it with "a" 
    a = "b"; // we've changed value 
    System.out.println(a); // now will print b 
} 

하지만 당신은 함수 내에서 정적 변수를 정의 할 수 없습니다, 그것은/C++,하지만 자바

에서 C에서 가능하다
관련 문제