जावा में ByteBuffer
के लिए उदाहरण एप्लिकेशन क्या हैं? कृपया किसी भी उदाहरण परिदृश्य सूचीबद्ध करें जहां इसका उपयोग किया जाता है। धन्यवाद!जावा में बाइटबफर का उपयोग क्या है?
उत्तर
This इसके उपयोग और कमियों का एक अच्छा विवरण है। जब भी आपको तेज़ निम्न-स्तर I/O करने की आवश्यकता होती है तो आप अनिवार्य रूप से इसका उपयोग करते हैं। यदि आप एक टीसीपी/आईपी प्रोटोकॉल को लागू करने जा रहे थे या यदि आप एक डेटाबेस (डीबीएमएस) लिख रहे थे तो यह कक्षा आसान हो जाएगी।
क्या जावा और कैसंद्रा डीबी का उपयोग करके विकसित उच्च ट्रैफिक वेबसाइट में कहीं भी उपयोगी है? – Aklin
त्वरित खोज के बाद, ऐसा लगता है कि हाँ, कैसंद्रा बाइटबफर का उपयोग करता है: http://www.mail-archive.com/[email protected]/msg14967.html यदि आप कच्ची वेबसाइट के बारे में सोच रहे हैं, तो वहां हो सकता है, लेकिन आम तौर पर यह केवल अप्रत्यक्ष रूप से वेबसाइटों द्वारा उपयोग किया जा रहा है - कैसंड्रा – kelloti
जैसे टूल का उपयोग करके एक बुरा लिंक नहीं, धन्यवाद। इसे जोड़ना चाहूंगा जो मुझे उपयोगी लगे - https://worldmodscode.wordpress.com/2012/12/14/the-java-bytebuffer-a-crash-course/ –
बाइटबफर वर्ग महत्वपूर्ण है क्योंकि यह जावा में चैनलों के उपयोग के लिए आधार बनाता है। ByteBuffer वर्ग बाइट बफ़र्स पर आपरेशन के छह श्रेणियों को परिभाषित करता है:
निरपेक्ष और सापेक्ष get और put तरीकों कि पढ़ सकते हैं और एक बाइट लिखना;
सापेक्ष bulk get विधियां जो इस बफर से बाइट के संगत दृश्यों को एक सरणी में स्थानांतरित करती हैं;
सापेक्ष bulk put तरीकों कि एक बाइट सरणी या इस बफर में कुछ अन्य बाइट बफर से बाइट्स से सटे दृश्यों हस्तांतरण;
पूर्ण और रिश्तेदार और अन्य विधियों के मूल्यों को पढ़ने और लिखने के तरीकों को प्राप्त करते हैं, उन्हें किसी विशेष बाइट ऑर्डर में बाइट्स के अनुक्रमों से और उससे अनुवाद करते हैं;
व्यू बफर बनाने के तरीके, जो बाइट बफर को किसी अन्य आदिम प्रकार के मान वाले बफर के रूप में देखने की अनुमति देता है; और
compacting, duplicating, और slicing एक बाइट बफर के लिए तरीके।
Example code : Putting Bytes into a buffer.
// Create an empty ByteBuffer with a 10 byte capacity
ByteBuffer bbuf = ByteBuffer.allocate(10);
// Get the buffer's capacity
int capacity = bbuf.capacity(); // 10
// Use the absolute put(int, byte).
// This method does not affect the position.
bbuf.put(0, (byte)0xFF); // position=0
// Set the position
bbuf.position(5);
// Use the relative put(byte)
bbuf.put((byte)0xFF);
// Get the new position
int pos = bbuf.position(); // 6
// Get remaining byte count
int rem = bbuf.remaining(); // 4
// Set the limit
bbuf.limit(7); // remaining=1
// This convenience method sets the position to 0
bbuf.rewind(); // remaining=7
इस टिप्पणी का बड़ा हिस्सा [जावा से कॉपी किया गया है 7 डॉक्स] (http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html)। –
जब तक आप एक गैर-स्पष्ट दुष्प्रभाव का लाभ नहीं उठा रहे हैं, मुझे विश्वास है कि आप पूर्ण रूप से गलत तरीके से गलत तरीके का उपयोग कर रहे हैं। जावाडोक इंगित करता है कि पूर्ण पॉट को इंडेक्स वैल्यू की आवश्यकता होती है। –
भले ही यह एपीआई डॉक्टर की एक प्रति है, यहां तक कि इसके स्कोर बीसीएस भी खराब हैं, कुछ लोग इसे देखने के लिए बहुत आलसी लगते हैं। – Chris
एंड्रॉयड में आप जावा सी के बीच साझा बफर ++ और (directAlloc विधि के साथ) बना सकते हैं और दोनों पक्षों में यह हेरफेर कर सकते हैं।
स्ट्रीम उन्मुख एपीआई का उपयोग करते हुए जावा IO एक बफर का उपयोग करके उपयोगकर्ता स्थान के भीतर डेटा के अस्थायी भंडारण के रूप में किया जाता है। डीएमए द्वारा डिस्क से पढ़ने वाले डेटा को सबसे पहले कर्नेल स्पेस में बफर में कॉपी किया जाता है, जिसे तब उपयोगकर्ता स्पेस में बफर में स्थानांतरित किया जाता है। इसलिए ऊपर की ओर है। इससे बचने से प्रदर्शन में काफी लाभ प्राप्त हो सकता है।
कर्नेल स्पेस में बफर तक पहुंचने का कोई तरीका होने पर, हम उपयोगकर्ता अस्थायी बफर को उपयोगकर्ता स्थान में छोड़ सकते हैं। जावा एनआईओ ऐसा करने का एक तरीका प्रदान करता है।
बाइटबफर जावा जावा द्वारा प्रदान किए गए कई बफरों में से एक है। डेटा को डेटा पढ़ने या लिखने के लिए यह सिर्फ एक कंटेनर या होल्डिंग टैंक है। बफर पर allocateDirect() API का उपयोग करके प्रत्यक्ष बफर आवंटित करके उपरोक्त व्यवहार प्राप्त किया जाता है।
Here एक महान ByteBuffer लाभ समझा लेख है।अनुसरण कर रहे हैं लेख में प्रमुख बिंदु: एक ByteBuffer के
- पहले लाभ चाहे वह प्रत्यक्ष या अप्रत्यक्ष है की परवाह किए बिना है संरचित बाइनरी डेटा (जैसे, निम्न स्तर के आईओ में से एक में कहा गया है की कुशल रैंडम एक्सेस जवाब)। जावा 1.4 से पहले, इस तरह के डेटा को पढ़ने के लिए कोई डेटा इनपुटपुट का उपयोग कर सकता है, लेकिन बिना यादृच्छिक पहुंच के।
विशेष रूप से सीधे बाइटबफर/मैप्डबेट बफर के लिए लाभ हैं। ध्यान दें कि प्रत्यक्ष बफ़र्स ढेर के बाहर बनाई गई हैं:
अप्रभावित जीसी चक्र से: प्रत्यक्ष बफ़र्स कचरा संग्रहण चक्र के दौरान नहीं ले जाया जाएगा के रूप में वे ढेर के बाहर रहते हैं। टेराकोटा का बिगमेमरी कैशिंग तकनीक इस लाभ पर भारी निर्भर करती है। अगर वे ढेर पर थे, तो यह जीसी विराम के समय धीमा कर देगा।
प्रदर्शन को बढ़ावा देने: में धारा आईओ, पढ़ा कॉल सिस्टम कॉल, जो कर्नेल मोड और इसके विपरीत है, जो महंगा है, खासकर यदि फ़ाइल लगातार पहुँचा जा रहा है हो सकता है उपयोगकर्ता के बीच एक संदर्भ स्विच की आवश्यकता करना पड़ेगा। हालांकि, स्मृति-मैपिंग के साथ इस संदर्भ-स्विचिंग को कम किया गया है क्योंकि डेटा मेमोरी (मैप्डबेट बफर) में पाया जाने की अधिक संभावना है। यदि डेटा मेमोरी में उपलब्ध है, तो इसे सीधे ओएस के बिना पहुंचाया जा सकता है, यानी कोई संदर्भ-स्विचिंग नहीं।
ध्यान दें कि मैप्डबेटबफर बहुत उपयोगी हैं, खासकर अगर फाइलें बड़ी हैं और ब्लॉक के कुछ समूह अधिक बार उपयोग किए जाते हैं।
- पृष्ठ साझाकरण: स्मृति मैप की गई फ़ाइलों प्रक्रियाओं के बीच साझा किया जा सकता के रूप में वे इस प्रक्रिया के आभासी स्मृति अंतरिक्ष में आवंटित किए जाते हैं और प्रक्रियाओं में साझा किया जा सकता है।
- 1. क्या जावा में एक हस्ताक्षरित बाइटबफर होना संभव है?
- 2. जावा की बाइटबफर
- 3. जावा/एंड्रॉइड - फास्ट बाइटबफर पार्सिंग
- 4. जावा में बाइटबफर का फास्ट मिट (स्पष्ट नहीं)
- 5. एक बाइटबफर
- 6. जावा बाइटबफर का सूचक प्राप्त करें हालांकि जेएनआई
- 7. बाइटबफर सामग्री की तुलना करें?
- 8. एक बाइटबफर से दूसरे
- 9. जावा के बाइटबफर थ्रेड को सुरक्षित बनाने के विकल्प
- 10. जावा: बाइटबफर और उससे संबंधित समस्याओं से स्ट्रिंग कनवर्ट करना
- 11. जावा स्विंग में AccessibleContext का उपयोग क्या है?
- 12. क्या जावा में enums पर == का उपयोग करना ठीक है?
- 13. जावा में इंटरफ़ेस का वास्तविक उपयोग क्या है?
- 14. जावा में मार्कर इंटरफेस का उपयोग क्या है?
- 15. जावा/सी # आदि 0 में प्रतिबिंब का उपयोग क्या है
- 16. जावा में क्लोनेबल इंटरफ़ेस का उपयोग क्या है?
- 17. बाइटबफर हैंश कोड क्यों हैं?
- 18. जावा में "सिंक्रनाइज़" का अर्थ क्या है?
- 19. जावा में e.printStackTrace() का उपयोग
- 20. जावा में, नाएन का क्या अर्थ है?
- 21. जावा में कक्षा का आविष्कार क्या है?
- 22. जावा में @ चिह्न का अर्थ क्या है?
- 23. जावा में क्लास का क्या अर्थ है?
- 24. आउटपुटस्ट्रीम से डेटा को बाइटबफर में कैसे रखा जाए?
- 25. जावा: यूआरएल से एक पीडीएफ फ़ाइल को एक एप्लेट में बाइट सरणी/बाइटबफर में पढ़ना
- 26. जावा का console.log() क्या है?
- 27. क्या एनआईओ बाइटबफर में प्रक्रिया स्टडआउट इनपुटस्ट्रीम को पढ़ना संभव है?
- 28. बाइटबफर डेटा आउटपुट/डेटा इनपुट लागू कर सकता है?
- 29. क्या जावा एन्कोडिंग में जावा एन्कोडिंग है?
- 30. जावा जेनरिक के इस उपयोग का क्या अर्थ है?
अपाचे हैडोप का संपीड़न (उदाहरण के लिए zlib कोडेक) jave.nio से बाइटबफर का उपयोग करता है। – nikk