Aşağıdaki Java sınıfına sahibim
public class HelloWorld {
public static void main(String []args) {
}
}
Bu dosyayı derlediğimde ve elde edilen sınıf dosyasında bir sha256 çalıştırdığımda
9c8d09e27ea78319ddb85fcf4f8085aa7762b0ab36dc5ba5fd000dccb63960ff HelloWorld.class
Sonra sınıfı değiştirdim ve böyle boş bir satır ekledim:
public class HelloWorld {
public static void main(String []args) {
}
}
Yine aynı sonucu almayı bekleyen bir sha256 çıktı ama bunun yerine aldım
11f7ad3ad03eb9e0bb7bfa3b97bbe0f17d31194d8d92cc683cfbd7852e2d189f HelloWorld.class
Bu TutorialsPoint makalesinde okudum :
Büyük olasılıkla bir yorum içeren yalnızca beyaz boşluk içeren bir satır boş satır olarak bilinir ve Java bunu tamamen yok sayar.
Benim sorum şu, Java boş satırları göz ardı ettiği için derlenmiş bayt kodu her iki program için neden farklı?
Yani bu fark HelloWorld.class
bir 0x03
byte bir değiştirilir 0x04
bayt.
Set
dahili olarak rastgele kullanırsa, her çalıştırmada farklı bir düzen üretebilir. Ayrıca, derleme zamanını içeren özel bir özellik de ekleyebilir. Ve benzeri…