L'incrémentation des variables d'instance d'un objet entraînera-t-elle une erreur de débordement de pile?Cela entraînera-t-il une erreur de débordement de pile?
Par exemple:
Cette méthode (java) provoquera une erreur de débordement de pile:
class StackOverflow {
public static void StackOverflow (int x)
{
System.out.println (x) ;
StackOverflow(x+1) ;
}
public static void main (String[]arg) { StackOverflow (0) ;
}
mais ce sera ?: (..... est une lacune que j'ai mis pour raccourcir le code. son assez longtemps qu'il est.)
import java.util.*;
class Dice
{
String name ;
int x ;
int[] sum ;
....
public Dice (String name)
{
this.name = name ;
this.x = 0 ;
this.sum = new int[7] ;
}
....
public static void main (String[] arg)
{
Dice a1 = new Dice ("a1") ;
for (int i = 0; i<6000000; i++)
{
a1.roll() ;
printDice(a1) ;
}
}
....
public void roll()
{
this.x = randNum(1, this.sum.length) ;
this.sum[x] ++ ;
}
public static int randNum (int a, int b)
{
Random random = new Random() ;
int c = (b-a) ;
int randomNumber = ((random.nextInt(c)) + a) ;
return randomNumber ;
}
public static void printDice (Dice Dice)
{
System.out.println (Dice.name) ;
System.out.println ("value: "+Dice.x) ;
printValues (Dice) ;
}
public static void printValues (Dice Dice)
{
for (int i = 0; i<Dice.sum.length; i++)
System.out.println ("#of "+i+"'s: "+Dice.sum[i]) ;
}
}
Le ci-dessus ne provoque pas actuellement une erreur de débordement de la pile, mais que je pourrais l'obtenir aussi si je l'ai changé cette ligne principale: for (int i = 0; i<6000000; i++)
de sorte qu'au lieu de 6 millions de quelque chose de suffisamment élevé était là?
'public class StackOverflow {public static void principal (String ... args) {main (null); }} 'Maintenant, * cela * est un' StackOverflowError';) – BalusC
Quel est le point de cette question? Tout simplement: Un débordement de pile est déclenché lorsqu'un dépassement de pile se produit car une application récursive trop profondément. –
Je parie que si vous avez changé la "taille minimale de pile" en passant une option JVM que vous pourriez obtenir ce rouleau de dés pour gérer plus d'itérations. – djangofan