본문 바로가기

compile2

[JAVA] static과 final의 컴파일 자바에서 자주 쓰이는 정적(static) 변수와 상수(final) 변수가 컴파일 시에 어떻게 변하는지 기록합니다. 크게 신경 쓰지 않아도 괜찮지만 간혹 문제를 발생하는 경우가 있으니 알고 있으면 좋겠습니다. static 컴파일 전(Var.java) public class Var { public static String str = "정적"; } 컴파일 전(Use.java) public class Use { private String str = Var.str; } 컴파일 후(Var.class) public class Var { public static String str = "정적"; } 컴파일 후(Use.class) public class Use { private String str = Var.str; }.. 2020. 8. 11.
[JAVA] 내부 클래스가 컴파일되면? 지난 포스트에서 작성했던 소스에 내부 클래스로 구현하였던 인증 세션 부분이 컴파일했을 때 어떤 식으로 변경되는지에 대하여 기록하려 합니다. 자동 배포 환경이 구축되어있지 않은 상황에서 바이트 코드가 누락되어 동작오류가 발생하였습니다. JAVA Compile 우선 JAVA의 컴파일에 관하여 간략히 기록하겠습니다. JAVA의 모토인 Write once, run everywhere(한번 작성, 어디서나 실행)에 따라 자바 소스는 JVM위에서 동작 가능한 상태인 Byte Code로 컴파일됩니다. 이때 Class 내부에 작성한 내부 클래스는 어떤 식으로 컴파일될까요? Inner Class의 Byte Code 결과는 따로 컴파일된다 였습니다. 예제와 디컴파일한 Byte Code를 살펴보겠습니다. // OuterCl.. 2020. 7. 8.