Java yöntem bildiriminde parametre sayısı
Java bir yöntem olabilir ve neden parametre sayısı nedir?
64-bit Windows sistemi üzerinde Java 1.8 kullanıyorum.
Bu konuda StackOverflow bütün cevapları teknik sınırı neden belirtmeden 255 parametreleri olduğunu söylüyorlar.
, 255 statik için hassas ve statik olmayan (this
bu durumda 255) yöntemleri için 254.
Bu şartname çeşit olabileceği belirtildi ve bu sadece parametreleri izin verilen statik olarak tanımlanan maksimum sayıda olduğunu düşündüm. Ama bunun için geçerliint
ve 4-bayt her türlü.
long
parametreler ile bazı testler yaptım, ve sadece bu durumda 127 parametreleri beyan edebildim.
String
parametreleri ile test sonucuna vardım izin verilen sayı 255 (referans boyut Java 4 bayt olduğundan olabilir mi?).
Ama 64-bit sistem kullanıyorum beri, başvurular boyutu String
parametreleri ile izin verilen en yüksek sayı 127, long
türleri için benzer olmalıdır yani 8 Byte genişliğinde olmalıdır.
Nasıl bu sınırı tam olarak uygulanıyor mu?
Sınırı ile bir ilgisi var mıyığın boyutuyöntemi?
Not: gerçekten herhangi bir yöntem bu birçok parametre kullanmak için gitmiyorum, ama bu soruya kesin davranışını açıklamak için sadece.
CEVAP
Bu sınırı JVM Specification olarak tanımlanır:
Yöntem parametre sayısıise 255 ile sınırlısınırı içeren bir yöntem tanımlayıcı (madde 4.3.3), tanım olarak, bir birim içinbuörneği veya arabirim yöntemi çağırmaları durumunda.
Bölüm §4.3.3 bazı ek bilgiler sağlar:
Yöntem tanımlayıcı eğer bu süre boyunca katkı payı dahil 255 veya daha az toplam uzunluğu ile yöntem parametreleri temsil ediyorsa geçerlidirbuörneği veya arabirim yöntemi çağırmaları durumunda.
Toplam uzunluğu bireysel parametreleri katkılarını özetleme ile hesaplanırbir parametre türü uzun veya çift uzunluk ve başka türde bir parametre için iki ünite katkıda bulunan bir birim katkı sağlamaktadır.
Gözlemleriniz kelime ilkel (long
/double
her zamanki 4 bayt değişkenleri iki katı lazım çift nokta vardıve 4 bayt örnek referanslar nesne.
Sorunuzun son kısmını 64 bit sistemleri ile ilgili olarak, şartname kaç tanımlarbirimler bir parametre katkıda bulunurteknik özellikleri de bir parçası buhala uyulmalıdırhatta 64 bit bir platformda, 64 bit JVM 255 örneği parametreleri (255 Strings
gibi) iç nesnenin işaretçisi boyutu ne olursa olsun kabul edecektir.
Neden anahtar kelime "son" J...
Nedir &; String argüman " []"? an...
Yöntem parametre adı Java yansıma kull...
Java desteği varsayılan parametre değe...
Java singleton deseni uygulamak için e...