Bir JVM bu hata veya "beklenen"?
Fark ettim bazı beklenmeyen davranış (beklenmeyen göre benim kişisel beklentileri), ve merak ediyorum, eğer bir şey varsa bir hata JVM ya da belki bir saçak dava nerede anlamıyorum bazı ayrıntıları tam olarak ne olduğunu olmamalıydı. Kendisi tarafından bir ana yöntem: aşağıdaki kodu vardı sanırım
int i;
int count = 0;
for(i=0; i < Integer.MAX_VALUE; i =2){
count ;
}
System.out.println(i );
Naif bir beklenti bu Integer.MAX_VALUE-1
bile int
temsil edilebilir en büyük baskı olacak. Ancak, tamsayı aritmetik gerekiyordu inanıyorum "geçiş Java, Integer.MAX_VALUE
ekleme 1" Integer.MIN_VALUE
yol açmalıdır. Integer.MIN_VALUE
Integer.MAX_VALUE
, daha küçük olduğu için döngü negatif bile değer vermez yineleme devam eder. Sonunda 0 ve sonsuz bir döngü gibi tekrar bu işlemi geri almak istiyorum.
Aslında ben bu kodu çalıştırdığınızda, belirli olmayan sonuçlar alıyorum. Basılmış olur ve bunun sonucunda yarım milyon sipariş olma eğilimindedir, ama tam değeri değişir. Bu yüzden sadece döngü sonsuz bir döngü olması gerektiğine inanıyorum ve ne zaman sona eriyor, ama rastgele sona erdirmek gibi görünüyor. Neler oluyor?
Benim tahminim bu JVM bir hata değildir ya o, ya bu beklenen davranış yapan funky optimizasyon çok şey var. Hangisi?
CEVAP
Hata da bilinir. İlgili
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6196102
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6357214
ve diğerleri.
Gerçek dünyada dışarı çıkmazlar çünkü düzeltmek için düşük öncelikli kabul ediyorlar sanırım.
Javascript hata için olası vaka: "...
Eğer nasıl MUAYENE imzalanmış veya &qu...
Hata javac derleyici olarak eclipse ve...
Bırakın hata ayıklama bilgisi ile &quo...
Ben ADT neden hata " alıyorum yükl...