Javaでの再帰と反復の違いは何ですか?
再帰 および反復 どちらも一連の命令を繰り返し実行します。 再帰 関数内のステートメントが自分自身を繰り返し呼び出す場合です。 。 反復 ループが制御条件がfalseになるまで繰り返し実行される場合です。 。再帰と反復の主な違いは、再帰です。 はプロセスであり、常に関数と反復に適用されます 一連の指示に適用されます 繰り返し実行したい 。
再帰
- 再帰は選択構造を使用します 。
- 無限 再帰 再帰ステップが特定の条件(ベース)に収束する方法で問題を軽減しない場合に発生します ケース )および無限再帰はシステムをクラッシュさせる可能性があります。
- 再帰はベースケースのときに終了します 認識されます。
- 再帰は通常反復よりも遅い スタックを維持するためのオーバーヘッドが原因です。
- 再帰は反復よりも多くのメモリを使用します 。
- 再帰によりコードが小さくなります 。
例
public class RecursionExample { public static void main(String args[]) { RecursionExample re = new RecursionExample(); int result = re.factorial(4); System.out.println("Result:" + result); } public int factorial(int n) { if (n==0) { return 1; } else { return n*factorial(n-1); } } }
出力
Result:24
反復
- 反復は繰り返しを使用します 構造 。
- ループ条件テストがfalseになることがなく、無限ループがCPUサイクルを繰り返し使用する場合、反復で無限ループが発生します。
- 反復は終了します ループ条件が失敗したとき 。
- イテレーションはスタックを使用しません したがって、再帰よりも高速です 。
- 反復は少ないメモリを消費します。
- 反復により、コードが長くなります 。
例
public class IterationExample { public static void main(String args[]) { for(int i = 1; i <= 5; i++) { System.out.println(i + " "); } } }
出力
1 2 3 4 5
-
JavaのJFrameとJDialogの違いは何ですか?
JFrame フレームに追加されたコンポーネントはそのコンテンツと呼ばれ、 contentPaneによって管理されます。 。 JFrameにコンポーネントを追加するには 、 contentPaneを使用する必要があります 代わりに。 JFrame タイトルのウィンドウが含まれています 、境界線 、(オプション)メニュー バー およびユーザー -指定 コンポーネント 。 JFrame 移動できます 、サイズ変更 、アイコン化 JComponentのサブクラスではありません 。 デフォルトでは、JFrameは左上の角に表示されます 画面のr。指定した場所にフレームを表示するには
-
JavaのGridLayoutとGridBagLayoutの違いは何ですか?
GridLayout すべてのコンポーネントを長方形のグリッドに配置し、同じサイズの長方形に分割します 各コンポーネントは長方形の中に配置されますが、 GridBagLayout 柔軟です レイアウト マネージャー コンポーネントを垂直方向と水平方向に整列させます コンポーネントが同じサイズである必要はありません。各GridBagLayout オブジェクトは、動的な長方形のセルのグリッドを維持します 各コンポーネントがコンポーネントと呼ばれる1つ以上のセルを占有します 表示 エリア 。 GridLayout GridLayout コンポーネントを長方形のグリッドに配置します。セル