2012-10-18 9 views
5

Capisco l'importanza di Single Responsibility Principle, ma tecnicamente parlando abbiamo un limite superiore sul numero di variabili locali (quelle che sono memorizzate nei frame di stack) all'interno di ciascun metodo java. E il limite superiore è uguale alla dimensione massima dello stack, cioè. Posso avere un frame di stack uguale alla dimensione massima dello stack configurato?Numero massimo di variabili locali in un metodo Java

+2

come si pone la domanda relativa al principio di responsabilità singola? – Ankur

+1

Ok. Quindi la relazione è che non è bello avere un solo metodo con troppe variabili locali. In tal caso potrebbe violare tale principio. – Bajji

+0

Puoi dare un'occhiata a questo post: - http://stackoverflow.com/questions/3700459/how-to-increase-to-java-stack-size –

risposta

4

Non esiste un limite superiore nella definizione del numero di variabili locali. Se si definiscono troppe variabili che non possono essere contenute in uno stack frame (o), JVM non è in grado di allocare uno stack frame per quella dimensione, genererà StackOverflowError e uscirà.

C'è un buon lecture da un professore di Stanford che può aiutarti.

+0

JVM crea una pila di dimensioni fisse? Se è così esiste un modo per aumentarlo? So che -Xss controlla le dimensioni dello stack, allo stesso modo c'è qualcosa per controllare le dimensioni del frame? – Bajji

+1

La dimensione del frame dello stack è dettata dalla definizione del metodo. È sempre lo stesso per ogni metodo. –

+0

@Nambari, questo non è giusto per me. La dimensione è nota ed è massima di 65.536. – Eugene

2

Questo sarà veramente definito dal runtime e quanto spazio di stack è allocato, per processo.

Problemi correlati