2

Javaに「コンスタントフォールディング」と呼ばれる概念はありますか? はいの場合、それは何ですか?

4

2 に答える 2

10

はいあります。

このJavaWorldの記事から(自分でグーグルで検索できたはずです!):

static final int length = 25;
static final int width = 10;
int res = length * width;

これらの値を乗算するために実行時間は使用されません。代わりに、乗算はコンパイル時に行われます。次の変数割り当てのコードは、幅と長さの積を表すバイトコードを生成するように変更されています。

int res  = 250;
于 2010-01-06T11:31:39.227 に答える
7

定数の折りたたみは、コンパイル時に定数式を単純化するプロセスです。定数式の項は通常、整数 2 などの単純なリテラルですが、値が変更されない変数、または定数として明示的にマークされた変数にすることもできます。

はい、Java に存在します:コンパイラーの最適化

于 2010-01-06T11:29:46.250 に答える