जैसा कि अन्य ने लिखा है, लंबे समय तक अद्वितीय संख्या के लिए पर्याप्त स्थान नहीं है। लेकिन कई मामलों में एक संख्या विशिष्ट उपयोग के लिए पर्याप्त अद्वितीय हो सकती है। उदाहरण के लिए, नैनोसेकंद परिशुद्धता वाला एक टाइमस्टैम्प अक्सर काफी अच्छा होता है। प्राप्त यह, वर्तमान मिलीसेकेंड 20 बिट्स नैनोसेकंड के लिए जगह आवंटित करने के लिए छोड़ दिया शिफ्ट और फिर नैनोसेकंड साथ यह उपरिशायी करने के लिए:
(System.currentTimeMillis() << 20) | (System.nanoTime() & ~9223372036854251520L);
नैनो & ~ 9223372036854251520L हिस्सा वर्तमान नैनोसेकंड लेता है और पहले 44 बाइट्स सेट
nanoseconds & ~1111111111111111111111111111111111111111111100000000000000000000
साइड नोट:: 0 करने के लिए, केवल सही 20 बिट जो एक मिलीसेकंड (999999 nanos) अप करने के लिए नैनोसेकंड प्रतिनिधित्व छोड़ने यह रूप में ही है नैनोसेकंड वर्तमान प्रतिनिधित्व करने के लिए नहीं किया जाना चाहिए समय क्योंकि उनका प्रारंभिक बिंदु समय पर तय नहीं होता है और जब वे अधिकतम तक पहुंचते हैं तो उन्हें पुनर्नवीनीकरण किया जाता है।
आप किसी अन्य बिट मैनिपुलेशन का उपयोग कर सकते हैं। वर्तमान समय और वर्तमान थ्रेड आईडी, प्रक्रिया आईडी, आईपी जैसे कुछ और ध्यान में रखना अच्छा होता है।
स्रोत
2016-05-19 15:57:19
आप अनुक्रम का उपयोग क्यों नहीं करते हैं? क्या आप इस तरह की चीजों का उपयोग करने में सक्षम हैं? या यूयूआईडी यह एक समाधान है जिसका उपयोग आप करना चाहते हैं? –
क्या आप अनुक्रम –
के बारे में अधिक समझा सकते हैं आप किस डीबी का उपयोग करते हैं? आप किस डीबी ढांचे का उपयोग करते हैं (जेडीबीसी, हाइबरनेट, मायबेटिस)? – Taky