2012-10-18 27 views
5

Rozumiem znaczenie Single Responsibility Principle, ale technicznie rzecz biorąc mamy jakąkolwiek górną granicę na liczbę zmiennych lokalnych (tych, które są przechowywane w ramkach stosu) w ramach każdej metody java. I czy ta górna granica jest równa maksymalnemu rozmiarowi stosu, tj. Czy mogę mieć ramkę stosu o rozmiarze równym maksymalnemu rozmiarowi stosu?Maksymalna liczba zmiennych lokalnych w metodzie Java

+2

jakie jest pytanie związane z zasadą odpowiedzialności pojedynczej? – Ankur

+1

Ok. Relacja jest taka, że ​​nie jest dobrze mieć jedną metodę ze zbyt wieloma zmiennymi lokalnymi. W takim przypadku może to naruszać tę zasadę. – Bajji

+0

Możesz rzucić okiem na ten wpis: - http://stackoverflow.com/questions/3700459/how-to-increase-to-java-stack-size –

Odpowiedz

4

Nie ma górnej granicy w definiowaniu liczby zmiennych lokalnych. Jeśli zdefiniujesz zbyt wiele zmiennych, które nie mieszczą się w ramce stosu (lub) JVM nie może przydzielić ramki stosu dla tego rozmiaru, rzuci ona StackOverflowError i zakończy działanie.

Jest dobry lecture przez profesora Stanforda, który może ci pomóc.

+0

Czy JVM tworzy ramkę o stałym rozmiarze? Jeśli tak, to czy istnieje sposób na jego zwiększenie? Wiem, że -Xss kontroluje wielkość stosu, podobnie jest tam coś, co kontroluje rozmiar ramki? – Bajji

+1

Rozmiar ramki stosu jest podyktowany definicją metody. Dla każdej metody jest zawsze taka sama. –

+0

@Nambari, to po prostu nie w porządku dla mnie. Rozmiar jest znany i wynosi maksymalnie 65 536. – Eugene

2

To naprawdę będzie zdefiniowane przez środowisko wykonawcze i ilość przydzielonego miejsca na stos, na proces.

Powiązane problemy