मेरे पास निम्न जावा वर्ग है
public class HelloWorld {
public static void main(String []args) {
}
}
जब मैं इस फ़ाइल को संकलित करता हूं और मुझे प्राप्त होने वाली कक्षा की फ़ाइल पर एक sha256 चलाता है
9c8d09e27ea78319ddb85fcf4f8085aa7762b0ab36dc5ba5fd000dccb63960ff HelloWorld.class
आगे मैंने कक्षा को संशोधित किया और इस तरह एक रिक्त रेखा जोड़ी:
public class HelloWorld {
public static void main(String []args) {
}
}
फिर से मैं आउटपुट पर एक समान परिणाम प्राप्त करने की उम्मीद में एक sha256 दौड़ा, लेकिन इसके बजाय मुझे मिल गया
11f7ad3ad03eb9e0bb7bfa3b97bbe0f17d31194d8d92cc683cfbd7852e2d189f HelloWorld.class
मैंने इस ट्यूटोरियल लेख पर पढ़ा है कि:
एक पंक्ति जिसमें केवल सफेद स्थान होता है, संभवतः एक टिप्पणी के साथ, एक रिक्त रेखा के रूप में जाना जाता है, और जावा इसे पूरी तरह से अनदेखा करता है।
इसलिए मेरा सवाल है, चूंकि जावा रिक्त लाइनों की उपेक्षा करता है, इसलिए संकलित बाईटेकोड दोनों कार्यक्रमों के लिए अलग क्यों है?
HelloWorld.class
एक 0x03
बाइट में एक बाइट द्वारा प्रतिस्थापित किया गया है 0x04
।
Set
आंतरिक रूप से यादृच्छिकता के साथ नए अपरिवर्तनीय एस का उपयोग करता है , तो यह प्रत्येक रन पर एक अलग क्रम का उत्पादन कर सकता है। यह संकलन-समय युक्त एक कस्टम विशेषता भी जोड़ सकता है। और इसी तरह…