SORU
1 HAZİRAN 2015, PAZARTESİ


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
1 HAZİRAN 2015, PAZARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alan Fullmer

    Alan Fullmer

    3 EYLÜL 2010
  • Hudson Music

    Hudson Music

    13 Mart 2007
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010