0

Java1.4で実行されているエンタープライズアプリがいくつかあります。それらは主にDB上のストアドプロシージャを呼び出し、XMLファイルを解析し(最大で数メガバイトの大きさ)、ディスクとの間で読み取りと書き込みを行います。これらのアプリをJava6に移行する必要があるという要件があります(コードの変更は一切行われません)。

私の質問:

  • Java 6でアプリを再コンパイルせずに実行した場合、正常に動作しますか(「すべき」とわかっています)?しかし、誰かが別のことを考えている場合は、親切にあなたの考えを共有していただけませんか?
  • さらに重要な質問は、パフォーマンスに影響がありますか?のように、アプリは1.4でコンパイルされ、1.6で実行されますが、アプリはコンパイルされ、1.6で実行されます。1.6は、1.4と比較して、同じ古いコードに対してバイトコードの最適化を行いますか?

どうもありがとうjs

4

3 に答える 3

2

1.4から1.6へのビルドの互換性について列挙型変数を確認してください-これは新しい予約語です

于 2010-04-14T13:48:44.407 に答える
2

これは実際にはコンパイルの問題ではありませんが、1.4から6の間のJDKへの特定のサードパーティコンポーネントの統合からいくつかの問題が発生する場合があります。過去にいくつかのXMLおよびWS関連のコンポーネントで問題が発生しました。例:xerces/xalan。

パッケージ/名前空間が変更された場合でも(したがって、既存のコンポーネントがコードで引き続き使用される可能性があります)、バックグラウンドで奇妙な自動検出が発生し、これらのコンポーネントの互換性のないバージョンが衝突する可能性があります。

承認されたクラスローダー/フォルダーを使用すると、多くの労力をかけなくても問題を解決できる場合があります。

私のアドバイス-まだ行っていない場合は、できるだけ早く試してみてください。

于 2010-04-14T13:52:48.020 に答える
1

最適化されるのはバイトコードではありません。バイトコードの形式はJava1(!)以降変更されていません。JVMは、実行時分析で価値があると判断されたコードの部分を最適化しますが、JITでコンパイルされたネイティブコードです。そして、はい、4から6へのステップはより良いパフォーマンスをもたらすはずです-仮想マシンはそれらの4。5年で長い道のりを歩んできました。

于 2010-04-14T13:39:42.833 に答える