Java'da bir yöntemin sahip olabileceği maksimum parametre sayısı nedir ve neden?
64 bit Windows sisteminde Java 1.8 kullanıyorum.
Bu konuda StackOverflow'daki tüm cevaplar, teknik sınırın nedenini belirtmeden 255 parametre olduğunu söylüyor.
Kesin olmak gerekirse, statik için 255 ve statik olmayan için 254 ( this
bu durumda 255.) Olacaktır.
Bunun bir tür spesifikasyonda tanımlanabileceğini ve sadece statik olarak tanımlanmış maksimum parametre sayısına izin verildiğini düşündüm.
Ancak bu yalnızca int
4 baytlık türlerin tümü için geçerlidir . long
Parametrelerle bazı testler yaptım ve bu durumda sadece 127 parametre bildirebildim.
İle String
parametreler test çıkarılabilir izin numarayı (referans boyutu Java 4 bayt olmasından kaynaklanabilir?) 255'tir.
Ancak 64 bit sistem kullandığım için, referans boyutu 8 bayt genişliğinde olmalı ve bu nedenle String
parametrelerle izin verilen maksimum sayı 127, long
türlere benzer olmalıdır .
Bu sınır tam olarak nasıl uygulanır?
Sınırın yöntemin yığın boyutu ile bir ilgisi var mı ?
Not: Bu parametrelerin hiçbirini gerçekten herhangi bir yöntemde kullanmayacağım, ancak bu soru sadece tam davranışı netleştirmek içindir.
<= 4
. Daha fazla bir şey muhtemelen bir nesneye sarılmalıdır.