내가 알고 있는 메서드입니다, KB, Java 와 함께 사용할 수 있을 만큼 64& 넘을 수 없습니다. 이 문제로 인해 생성된 코드 제한은라이센스 우리 자바치 에서 문법. 문제를 해결할 수 있었다 "며," jave 6-셀 및 변경하여 이 로마자를 쓴다. 아니면 계획된 for Java 는 제한값 변경되지 jave 7 8?
그냥 쉽게 해결된다. # 39, 빨리, 보다 더 필요한 건 아니다, 내가 don& 메서드입니다 64& %dkb 혼자. 하지만 내가 쓴 《 문법 컴파일됩니다 매우 큰 메서드입니다.
[JVMS7] [1] 에 따르면:
>. 이 개념이 역사적 사실을 잘못 end_pc 는 단독 >. 설계 (java virtual machine): 코드 (java virtual machine) 의 경우 >. 정확히 65535 바이트입니다 기절해있는 끝나며 메서드입니다 위한 명령어 >. 즉, 1 바이트, 그 긴 명령) 에 의해 보호될 수 없음 >. idfsysobject. 처리기에서. 이 버그는 컴파일러 작성기에 통해 해결할 수 있습니다. >. 최대 크기를 최소화하는 생성된 Java virtual machine) 의 코드 >. 모든 방법을 인스턴스입니다 초기화하지 방법, 또는 정적임 초기화 >. (모든 코드 크기를 어레이입니다) 를 65534 바이트입니다.
하지만 이는 '대한' jave 7. 자바 명세, < strike> 없다, 최종 8 단, 해당 개발자) 이 질문에 대한 대답을 제시할 수 있기 때문에 아니예 question.< /strike>;
[1]: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html # jvms-4.7.3 [2]: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html # jvms-4.7
좋은 질문입니다. [출처] [1] 우리는 항상 이동해야 하는데 답을 찾는 (" 이 Java& # 174tb;; 가상 머신 Specification".). 단면 언약보다는 명시적으로 언급하고 있지만, 다소 신중히 표시되어도 제한 (그랬듯이 Java6 vmo 사양명세):
가장 많은 지역 변수를 >, 국내 com/go/4e6b330a_kr 어레이입니다 창조하 호출 메서드입니다 (& # 167, 2.6) 프레임의 빛위에 제한되는지 65535 를 통해, 이 코드의 크기를 max_locals 품목으로부터 차지백 (& # 167, 4.7.3) 의 16 비트 코드를 확증하노라 메소드의 지역 변수를 인덱스화를 늘어났고, Java Virtual Machine instruction set.
건배,
[1]: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html # jvms-4.11
이 바뀌지 않았다. 여전히 64kb 의 코드 모두에서 메서드을 제한, 자바 (java 7 8.
>. 정적 클래스 파일을 지정합니다 코드에서 제약조건을 자바 가상 머신 >. 자바 가상 머신 지침 및 코드 어레이입니다 어떻게 배치되어 있어야 합니다. >. 개별 지침을 피연산자로 합니다.
>. 제약조건을 지침를 정적 코드 어레이입니다 다음과 같습니다.
>. - 코드 어레이입니다 공백일 수 없습니다, 따라서 code_length 항목설명프로세서 수 없습니다 값이 0. >. - 값을 code_length 품목으로부터 65536 보다 작아야 합니다.
>. 가치를 code_length 품목으로부터 코드에서 어레이입니다 바이트 수를 줄 수 있다. 이를 위해 메서드입니다. >. >. 제로 (그 코드를 어레이입니다 합니다 code_length 가치를 커야 합니다. 비어 있을 수 없는) 와 미만임 65536.
[1]: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html # jvms-4.9.1 [2]: http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html # jvms-4.7.3
이 질문에 대해 '7' 은 이미 안드레모니 jave 일부가 전송되었기 곧 결정할 수 있지만, 당시 것 같다 '' 그래서 난 그런 부분에 대한 답을 완료하십시오 빽이라는 jave 8:
심판을 받은 [jvm] (http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html # jvms-4.7.3):
> end_pc 는 역사적 사실을 잘못 설계, 단독 는 자바 가상 머신. (java virtual machine) 의 경우 코드를 방법은 정확히 1 바이트 즉, 그 다음으로 길고 긴 65535 바이트입니다 명령어 예외를 처리기에서 지시에 의해 보호될 수 없습니다. 이 버그는 컴파일러 작성기에 해결할 수 있는 최대 크기의 제한을 통해 생성된 모든 방법을 인스턴스입니다 초기화하지 방법, 또는 정적임 초기화 코드를 자바 가상 머신 (모든 코드 크기를 어레이입니다) 를 65534 바이트입니다.