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 コンポーネントを長方形のグリッドに配置します。セル