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
risposta
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.
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
La dimensione del frame dello stack è dettata dalla definizione del metodo. È sempre lo stesso per ogni metodo. –
@Nambari, questo non è giusto per me. La dimensione è nota ed è massima di 65.536. – Eugene
Questo sarà veramente definito dal runtime e quanto spazio di stack è allocato, per processo.
- 1. Variabili di istanza Java vs variabili locali
- 2. variabili locali in bytecode Java
- 3. Uso di variabili locali finali in java
- 4. Numero massimo di parametri nella dichiarazione del metodo Java
- 5. Perché l'aggiunta di variabili locali causa un ritardo nel metodo?
- 6. bytecode Java: tipi di variabili locali?
- 7. Perché le variabili locali vengono anche chiamate "Automatiche" in Java?
- 8. Locali mancanti in Java?
- 9. script bash leggere le variabili di file in variabili locali
- 10. Numero massimo di unità in Windows?
- 11. Numero massimo di thread
- 12. PowerShell Variabili globali variabili locali
- 13. Rails - Variabili locali contro variabili di istanza
- 14. Stringhe Java: prestazioni statiche private vs variabili locali
- 15. Valori predefiniti di variabili di istanza e variabili locali
- 16. Variabili locali all'interno di aes
- 17. variabili locali: Programmazione Pratiche
- 18. Stile di codifica Java, variabili locali e chiamate con metodo ripetuto
- 19. Variabili locali MySQL
- 20. Variabili locali passate (C++)
- 21. OkHttpClient ha un numero massimo di tentativi
- 22. Esiste un numero massimo di ceste git?
- 23. Java Dove si trovano Variabili locali, riferimenti a oggetti, variabili di istanza
- 24. Variabili locali nel metodo statico e sicurezza del thread
- 25. Javadoc per variabili locali?
- 26. Larghezze variabili nel metodo String.format di Java
- 27. dati jQuery - Numero massimo di colonne in un datatable
- 28. variabili Constructor-locali a Scala
- 29. Perché Java inizializza solo le variabili di classe per impostazione predefinita ma non le variabili locali?
- 30. Come utilizzare variabili locali in un'espressione lambda
come si pone la domanda relativa al principio di responsabilità singola? – Ankur
Ok. Quindi la relazione è che non è bello avere un solo metodo con troppe variabili locali. In tal caso potrebbe violare tale principio. – Bajji
Puoi dare un'occhiata a questo post: - http://stackoverflow.com/questions/3700459/how-to-increase-to-java-stack-size –