SORU
25 Kasım 2010, PERŞEMBE


Java'da final anahtar kelime kullanımı performansını artırmak mı?

Java final anahtar kelime kullanılabilir ancak kullanımı çok nadir yerlerde çok görüyoruz.

Örneğin:

String str = "abc";
System.out.println(str);

Yukarıdaki durumda, str final olabilir ama bu genellikle sol kapalı.

Bir yöntem asla geçersiz olacak zaman son sözcüğünü kullanabiliriz. Kalıtsal olmayacak olan bir sınıfın durum benzer.

Bu durumlardan herhangi biri ya da hepsi Son kelime kullanımı gerçekten performansı artırmak mı? Eğer öyleyse, o zaman nasıl? Lütfen açıklayın. Eğer final doğru kullanımı gerçekten performans için önemli olan, alışkanlıkları bir Java programcısı en iyi anahtar kelime kullanmak geliştirmek ne yapmalıyım?

CEVAP
25 Kasım 2010, PERŞEMBE


Genellikle değil. Sanal yöntemleri için etkin yöntem olup olmadığını izleyebiliraslındageçersiz ve satır içi uygulaması gibi iyileştirmeleri yapmak mümkünvarsayımbir yöntem geçersiz olmamıştır - a sınıfı yükler kadar hangi noktada (veya kısmen geri al) bu iyileştirmeleri geri alabilir yöntemi geçersiz kılar.

(Tabii ki, bu Fi - ama bugüne kadar en yaygın JVM, o yüzden...) kullandığınızı varsayarsak

Aklıma net bir tasarım ve performansla ilgili nedenlerden dolayı yerine okunabilirliği dayalı final kullanmalısınız. Eğer değiştirmek istediğiniz bir şey için, performansı artırmak gerekir gerçekleştirmek uygun Ölçümler önce bükme açık kod formsuz - bu şekilde karar verebilirsiniz herhangi bir ekstra performans elde edilen değer yoksul okunabilirlik/tasarım. (Benim durumumda hemen hemen hiç buna değer; YMMV.)

Son alanları da belirtildiği Gibi, genellikle iyi bir fikir zaten onlar bunu hatırlattığın değer, net Tasarım açısından. EDİT: Bir kurucu tamamlandıktan sonra, herhangi bir nihai alanları diğer konuları hemen görünür olmasını garanti etmektedir. onlar da çapraz iş parçacığı görüş açısından garanti davranışları değiştirmek: Bu muhtemelen en yaygın kullanım final benim deneyim, her ne kadar bir taraftar Josh Bloch "tasarım için miras ya da yasaklar" başparmak kuralı, gitsem kullanın final daha sık ders...

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008
  • Tomas N

    Tomas N

    14 Kasım 2010

İLGİLİ SORU / CEVAPLAR