答えは B です。ボトムアップ移行は、最下位レベルのライブラリから開始してアプリケーション自体で終わるまで、依存関係を 1 つずつモジュール パスに移動することで、既存のアプリケーションをモジュール化する戦略だからです。このようにして、各モジュールは module-info.java ファイルを使用して他のモジュールへの依存関係を宣言し、信頼性の高い構成、強力なカプセル化、サービスの読み込みなどの Java Platform Module System (JPMS) の機能の恩恵を受けることができます。 オプション A は不正解です。トップダウン移行は、既存のアプリケーションを最初にモジュール パスに移動し、その依存関係を自動モジュールとしてモジュール化する戦略であるためです。自動モジュールは、モジュール記述子や固定名がないなど、いくつかの制限付きでモジュールとして扱われる非モジュール式の JAR ファイルです。トップダウン移行により、アプリケーションは、最初にすべての依存関係をモジュール化する必要がなく、モジュール パスを使用できるようになります。 オプション C は不正解です。トップダウン移行では、アプリケーションが最初に移動され、その依存関係が自動モジュールとして移動される限り、モジュールを移行する特定の順序は必要ありません。一方、ボトムアップ移行では、必要なモジュールを、それに依存するモジュールより先に移行する必要があります。 名前のないモジュールはどの移行戦略においても自動モジュールではないため、オプション D は不正解です。名前のないモジュールは、クラスパスからロードされたクラスや動的に生成されたクラスなど、名前やモジュール記述子を持たないモジュールです。名前のないモジュールは他のすべてのモジュールに無制限にアクセスできますが、セキュリティ チェックを軽減したリフレクションを使用する場合を除き、名前付きモジュールからはアクセスできません。参照: Oracle Certified Professional: Java SE 17開発者 Java SE 17開発者 OCP Oracle Certified Professional Java SE 17 開発者学習ガイド モジュールへの移行 (方法と時期) - JavaDeploy Java 9 のモジュール性: 保守可能なアプリケーションを開発するためのパターンと実践
1Z0-829 試験問題 30
どの 2 つのコード断片がコンパイルされますか?
正解: B,E
説明 コンパイルされる 2 つのコード フラグメントは B と E です。これらは、var 変数の宣言と初期化に正しい構文を使用する唯一のコードです。var キーワードは、コンパイラが初期化子の式に基づいて変数の型を推測できるようにする予約された型名です。ただし、var 変数には初期化子が必要であり、初期化子は null またはラムダ式であってはなりません。したがって、オプション A は初期化子がないため無効、オプション C は null 初期化子があるため無効、オプション D は初期化子としてラムダ式があるため無効です。オプション B は String 初期化子があるため有効であり、オプション E は int 初期化子があるため有効です。 https://docs.oracle.com/en/java/javase/17/ language/local-variable-type-inference.html