[解決済み] Java 7 と 8 におけるメソッドの最大サイズ
2023-06-18 07:12:43
質問
Javaでメソッドが64KBより大きくできないことは知っています。この制限のために JavaCC 文法から生成されたコードで問題が発生します。Java 6で問題が発生し、文法を変更することで修正できました。Java 7 では制限が変更されたのでしょうか、それとも Java 8 で予定されているのでしょうか?
はっきりさせておきたいのですが。私自身は64KBより大きなメソッドは必要ありません。しかし、私は非常に大きなメソッドにコンパイルする文法を書きました。
どのように解決するのですか?
によると JVMS7 :
<ブロッククオートend_pcが排他的であることは、Java仮想マシンの設計における歴史的な誤りです。 Java仮想マシンの設計における歴史的な誤りです。 メソッドのコードがちょうど 65535 バイト長で、1 バイト長の命令で終了する場合、その命令は メソッドのJava仮想マシンコードがちょうど65535バイトで、1バイト長の命令で終わる場合、その命令は例外ハンドラによって保護されることはできません。 例外ハンドラで保護することはできません。このバグを回避するために、コンパイラーは以下の方法をとります。 生成されるJava仮想マシンコードの最大サイズを制限する。 メソッド、インスタンス初期化メソッド、または静的イニシャライザに対して、生成されるJava仮想マシンコード (コード配列のサイズ)の最大サイズを 65534 バイトに制限することで、このバグを回避することができます。
しかし、これは約
Java 7
.
upd (2015-04-06)
によると
JVM8
にも当てはまります。
Java 8
.
関連
-
Javaでよくある構文エラー
-
Uncaught ReferenceError: は定義されていません。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
プロジェクトの依存関係を解決できない。
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
java.sql.SQLException: 結果セットの開始前
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
java 365*1000*60*60*24 計算問題
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。