लेट बाइंडिंग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|When called functions or methods are looked up by name at runtime}}
{{Short description|When called functions or methods are looked up by name at runtime}}
'''कंप्यूटिंग में, लेट बाइंडिंग या डायनेमिक लिंकेज<ref>Booch, Grady. Object-oriented Analysis and Design. Addison-Wesley, 1994. p71</ref>''' -हालांकि आयातित कोड पुस्तकालयों(लाइब्रेरी) को गतिशील(डायनमिक) रूप से जोड़ने(लिंक) के लिए एक समान प्रक्रिया नहीं है- एक कंप्यूटर प्रोग्रामिंग तंत्र है जिसमें किसी ऑब्जेक्ट पर कॉल की जाने वाली विधि, या फंक्शन को तर्कों(आर्गुमेंट) के साथ कॉल की जाने वाले फंक्शन को रनटाइम पर नाम से देखा जाता है। दूसरे शब्दों में, संकलन के बजाय नाम रनटाइम पर किसी विशेष ऑपरेशन या ऑब्जेक्ट से जुड़ा होता है। गतिशील बाइंडिंग का प्रयोग कभी-कभी किया जाता है<ref>{{cite web|url=http://support.microsoft.com/default.aspx?scid=kb;EN-US;245115|title=Using early binding and late binding in Automation|date= 2003-09-06|accessdate=2014-06-27|publisher=[[Microsoft]]|archive-url=https://web.archive.org/web/20140627041338/http://support.microsoft.com/default.aspx?scid=kb;EN-US;245115|archive-date=2014-06-27}}</ref>,लेकिन डायनेमिक स्कोप को संदर्भित करने के लिए इसका अधिक उपयोग किया जाता है।
'''कंप्यूटिंग में, लेट बाइंडिंग या डायनेमिक लिंकेज<ref>Booch, Grady. Object-oriented Analysis and Design. Addison-Wesley, 1994. p71</ref>''' आयातित कोड लाइब्रेरी को गतिशील(डायनमिक) रूप से जोड़ने के लिए यह समान प्रक्रिया नहीं है-यह एक कंप्यूटर प्रोग्रामिंग कार्य बिधि है जिसमें किसी ऑब्जेक्ट पर कॉल की जाने वाली विधि या फंक्शन को आर्गुमेंट के साथ कॉल की जाने वाले फंक्शन के रनटाइम पर नाम से देखा जाता है। दूसरे शब्दों में, संकलन के बजाय नाम रनटाइम पर किसी विशेष ऑपरेशन या ऑब्जेक्ट से जुड़ा होता है। गतिशील(डायनमिक) बाइंडिंग का प्रयोग कभी-कभी किया जाता है<ref>{{cite web|url=http://support.microsoft.com/default.aspx?scid=kb;EN-US;245115|title=Using early binding and late binding in Automation|date= 2003-09-06|accessdate=2014-06-27|publisher=[[Microsoft]]|archive-url=https://web.archive.org/web/20140627041338/http://support.microsoft.com/default.aspx?scid=kb;EN-US;245115|archive-date=2014-06-27}}</ref>,लेकिन डायनेमिक स्कोप को संदर्भित करने के लिए इसका अधिक उपयोग किया जाता है।


[[ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] भाषा में अर्ली बाइंडिंग या स्टैटिक बाइंडिंग के साथ, संकलन चरण सभी प्रकार के वेरिएबल्स और एक्सप्रेशंस को ठीक करता है। यह आमतौर पर संकलित कार्यक्रम वास्तविक विधि तालिका (वी-टेबल) में ऑफसेट के रूप में संग्रहीत होता है।<ref>{{cite web| url = http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.6.3| title = The Structure of the Java Virtual Machine: Dynamic Linking| year = 1999 | accessdate = 2013-09-21| at = sec. 3.6.3| publisher = [[Sun Microsystems]]}}</ref> इसके विपरीत, लेट बाइंडिंग के साथ, संकलक पर्याप्त जानकारी नहीं पढ़ता है यह सत्यापित करने के लिए कि विधि मौजूद है या वी-टेबल पर इसके स्लॉट को बांधती है। इसके बजाय,इस विधि को रनटाइम पर नाम से देखा जाता है।
[[ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] भाषा में अर्ली बाइंडिंग या स्टैटिक बाइंडिंग के साथ, संकलन(कंपाइल) चरण सभी प्रकार के वेरिएबल्स और एक्सप्रेशंस को ठीक करता है। यह आमतौर पर संकलित कार्यक्रम वास्तविक विधि तालिका (वी-टेबल) में ऑफसेट के रूप में संग्रहीत होता है।<ref>{{cite web| url = http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.6.3| title = The Structure of the Java Virtual Machine: Dynamic Linking| year = 1999 | accessdate = 2013-09-21| at = sec. 3.6.3| publisher = [[Sun Microsystems]]}}</ref> इसके विपरीत लेट बाइंडिंग के साथ संकलक(कंपाइल) पर्याप्त जानकारी नहीं पढ़ता है इसे सत्यापित करने के लिए कि विधि मौजूद है या वी-टेबल पर इसके स्लॉट को बांधती है। इसके बजाय, इस विधि को रनटाइम पर नाम से देखा जा सकता है।


[[कंपोनेंट ऑब्जेक्ट मॉडल]] (COM) प्रोग्रामिंग में लेट बाइंडिंग का उपयोग करने का प्राथमिक लाभ यह है कि इसके लिए कंपाइलर को उन लाइब्रेरी को संदर्भित करने की आवश्यकता नहीं होती है जिनमें संकलन समय पर ऑब्जेक्ट होता है। यह संकलन प्रक्रिया को संस्करण विरोधों के लिए अधिक प्रतिरोधी बनाता है, जिसमें कक्षा की वी-टेबल को गलती को संशोधित किया जा सकता है।(यह .NET या जावा जैसे समय-समय पर संकलन-संकलित प्लेटफ़ॉर्म में चिंता का विषय नहीं है, क्योंकि वी-टेबल रनटाइम पर वर्चुअल मशीन द्वारा पुस्तकालयों के खिलाफ बनाई जाती है क्योंकि उन्हें चल रहे एप्लिकेशन में लोड किया जा रहा है।<ref>Software engineering techniques, J. N. Buxton, [[Brian Randell]], NATO Science Committee, NATO Science Committee, 1970</ref>
[[कंपोनेंट ऑब्जेक्ट मॉडल]] (COM) प्रोग्रामिंग में लेट बाइंडिंग का उपयोग करने का प्राथमिक लाभ यह है कि इसके लिए कंपाइलर को उन लाइब्रेरी को संदर्भित करने की आवश्यकता नहीं होती है जिनमें संकलन(कंपाइल) समय पर ऑब्जेक्ट होता है। यह संकलन(कंपाइल) प्रक्रिया को संस्करण विरोधों के लिए अधिक प्रतिरोधी बनाता है, जिसमें क्लास के वी-टेबल के गलती को संशोधित किया जा सकता है।(यह .NET या जावा जैसे समय-समय पर संकलन-संकलित प्लेटफार्म में चिंता का विषय नहीं है, क्योंकि वी-टेबल का निर्माण रनटाइम पर वर्चुअल मशीन द्वारा लाइब्रेरी के खिलाफ बनाई जाती है क्योंकि उन्हें चल रहे एप्लिकेशन में लोड किया जा जाना होता है।<ref>Software engineering techniques, J. N. Buxton, [[Brian Randell]], NATO Science Committee, NATO Science Committee, 1970</ref>


== इतिहास ==
== इतिहास ==


"लेट बाइंडिंग" शब्द कम से कम 1960 के दशक का है, जहां यह ACM के संचार में पाया जा सकता है। लिस्प जैसी भाषाओं में कॉलिंग सम्मेलनों का वर्णन करने के लिए इस शब्द का व्यापक रूप से उपयोग किया गया था, हालांकि आमतौर पर प्रदर्शन के बारे में नकारात्मक अर्थों के साथ।<ref>{{cite web|url=http://www.purl.org/stefan_ram/pub/doc_kay_oop_en |title=Dr. Alan Kay on the Meaning of "Object-Oriented Programming" |publisher=Purl.org |date= |accessdate=2013-08-16}}</ref>
"लेट बाइंडिंग" शब्द कम से कम 1960 के दशक का है, जहां यह ACM के संचार में पाया जाता है। लिस्प जैसी भाषाओं में कॉलिंग सम्मेलनों का वर्णन करने के लिए नकारात्मक अर्थों के साथ इस शब्द का उपयोग व्यापक रूप से किया गया था<ref>{{cite web|url=http://www.purl.org/stefan_ram/pub/doc_kay_oop_en |title=Dr. Alan Kay on the Meaning of "Object-Oriented Programming" |publisher=Purl.org |date= |accessdate=2013-08-16}}</ref>


1980 के दशक में स्मॉलटॉक ने ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) को और इसके साथ लेट बाइंडिंग को लोकप्रिय बनाया ।"एलन के" ने एक बार कहा था, "मेरे लिए ओओपी का अर्थ है केवल संदेश देना, स्थानीय प्रतिधारण, और राज्य-प्रक्रिया का संरक्षण और छिपाना, और सभी वस्तु के लिय लेटबाइंडिंग होती है | यह स्मॉलटाक और एलआईएसपी में किया जा सकता है। संभवतः अन्य प्रणालियाँ हैं जिनमें यह संभव है, लेकिन मुझे उनकी जानकारी नहीं है।<ref>{{cite web|title=Using early binding and late binding in Automation|url=http://support.microsoft.com/kb/245115|publisher=Support.microsoft.com|accessdate=2011-01-15}}</ref>
1980 के दशक में स्मॉलटॉक ने ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) को और इसके साथ लेट बाइंडिंग को लोकप्रिय बनाया ।"एलन के" ने एक बार कहा था, "मेरे लिए OOP का अर्थ है केवल संदेश देना स्थानीय प्रतिधारण और सभी ऑब्जेक्ट के लिय लेटबाइंडिंग अधिकतम प्रयोग होती है | यह स्मॉलटाक और लिस्प में किया जा सकता है। संभवतः अन्य प्रणालियाँ भी हैं जिनमें यह संभव हो सकता है, लेकिन मुझे उनकी जानकारी नहीं है।<ref>{{cite web|title=Using early binding and late binding in Automation|url=http://support.microsoft.com/kb/245115|publisher=Support.microsoft.com|accessdate=2011-01-15}}</ref>


1990 के दशक की शुरुआत में,माइक्रोसॉफ्ट ने अपने कॉम मानक को विभिन्न ओओपी प्रोग्रामिंग भाषाओं के बीच एक बाइनरी इंटरफेस के रूप में प्रचारित किया। COM प्रोग्रामिंग समान रूप से सिंटैक्स स्तर पर दोनों का समर्थन करने वाली कई भाषाओं के साथ शुरुआती और देर से लेटबाइंडिंग को बढ़ावा देती है।
1990 के दशक में,माइक्रोसॉफ्ट ने अपने COM मानक को विभिन्न OOP प्रोग्रामिंग भाषाओं के बीच एक बाइनरी इंटरफेस के रूप में प्रचारित किया। COM प्रोग्रामिंग समान रूप से सिंटैक्स स्तर पर दोनों का समर्थन करने वाली कई भाषाओं के साथ अर्ली बाइंडिंग और लेटबाइंडिंग को बढ़ावा देती है।


2000 में, [[एलेक्स मार्टेली]] ने एक समान अवधारणा को संदर्भित करने के लिए एक अलग जोर के साथ "डक टाइपिंग" शब्द चुना। जबकि लेट बाइंडिंग आम तौर पर कार्यान्वयन विवरण पर केंद्रित होता है, [[बतख टाइपिंग|डक टाइपिंग]] प्रकारों को अनदेखा करने की क्षमता पर ध्यान केंद्रित करती है और वर्तमान में एक वस्तु के तरीकों पर ध्यान केंद्रित करती है।
2000 में, [[एलेक्स मार्टेली]] ने एक समान अवधारणा को संदर्भित करने के लिए एक अलग जोर के साथ "डक टाइपिंग" शब्द को चुना। जबकि लेट बाइंडिंग सामान्यत: कार्यान्वयन विवरण पर केंद्रित होता है और [[बतख टाइपिंग|डक टाइपिंग]] प्रकारों को अनदेखा करने की क्षमता पर ध्यान केंद्रित करती है।


== लेट बाइंडिंग कार्यान्वयन ==
== लेट बाइंडिंग कार्यान्वयन ==


=== लेट बाइंडिंग में डायनमिक रूप से टाइप की गई ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा ===
=== लेट बाइंडिंग में डायनमिक रूप से टाइप की गई ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा ===
अधिकांश गतिशील रूप से टाइप की गई भाषाओं में, किसी ऑब्जेक्ट पर विधियों की सूची को रनटाइम पर बदला जा सकता है। इसके लिए लेट बाइंडिंग की आवश्यकता है।
अधिकांश गतिशील(डायनमिक) रूप से टाइप की गई भाषाओं में, किसी ऑब्जेक्ट पर विधियों की सूची को रनटाइम पर बदला जा सकता है। इसके लिए लेट बाइंडिंग की आवश्यकता पड़ती है।


=== लिस्प में लेट बाइंडिंग ===
=== लिस्प में लेट बाइंडिंग ===
Line 25: Line 25:


पारस्परिक [[क्लोजर सीएल|क्लोजर कॉमन लिस्प]] सत्र का उपयोग करने का उदाहरण:
पारस्परिक [[क्लोजर सीएल|क्लोजर कॉमन लिस्प]] सत्र का उपयोग करने का उदाहरण:
 
? (defun foo ()
? (डिफन फू ()
    (bar pi))   ; a still undefined function BAR gets called
    (बार पाई)); एक अभी भी अपरिभाषित फ़ंक्शन बार को बुलाया किया जाता है
;Compiler warnings :
कंपाइलर चेतावनियां:
;   In FOO: Undefined function BAR
; खाद्य में: अपरिभाषित समारोह बार
FOO
फू
 
? (defun bar (x)   ; now we define it
? (डिफ़न बार (x); अब हम इसे परिभाषित करते हैं
    (* x 2))
    (* x 2))
BAR
बार
 
? (foo)   ; calling foo and it uses the recent definition of BAR
? (फू); कॉलिंग फू और यह बार की हालिया परिभाषा का उपयोग करता है
6.283185307179586D0
 
6.283185307179586D0
? (defun bar (x)   ; now we redefine BAR
 
    (* x 1000))
? (डिफ़न बार (x); अब हम बार को फिर से परिभाषित करते हैं
BAR
    (* x 1000))
बार
? (foo)   ; FOO now calls the new function, there is no need to recompile/link/load FOO
 
3141.592653589793D0
? (फू); एफओओ अब नए फ़ंक्शन को बुलाता है,एफओओ को पुनः संकलित/लिंक/लोड करने की कोई आवश्यकता नहीं है
 
? (type-of 'bar)   ; BAR is a symbol
3141.592653589793D0
SYMBOL
 
? (टाइप-ऑफ 'बार); बार एक प्रतीक है
? (symbol-function 'bar) ; the symbol BAR has a function binding
 
#<Compiled-function BAR #x302000D1B21F>
प्रतीक
 
? (प्रतीक-फ़ंक्शन 'बार); प्रतीक बार में एक समारोह जुड़ा है
 
<nowiki>#</nowiki><संकलित-समारोह बार #x302000D1B21F>


=== C++ में लेट बाइंडिंग   ===
=== C++ में लेट बाइंडिंग   ===
C++ में लेट बाइंडिंग (जिसे "डायनमिक बाइंडिंग" भी कहा जाता है) संदर्भित करता है कि सामान्य रूप से क्या होता है जब वर्चुअल कीवर्ड का उपयोग विधि को प्रकट करने में किया जाता है। C++ आभासी तालिका बनाता है, जो ऐसे कार्यों के लिए एक तालिका है जिसे कॉल किय जाने पर हमेशा परामर्श किया जाएगा।<ref>{{cite web|author= |url=http://www.learncpp.com/cpp-tutorial/125-the-virtual-table/ |title=12.5 — The virtual table « Learn C |publisher=Learncpp.com |date=2008-02-08 |accessdate=2013-08-16}}</ref> आमतौर पर,लेट बाइंडिंग शब्द का उपयोग [[गतिशील प्रेषण|डायनमिक प्रेषण]] के पक्ष में किया जाता है।
C++ में लेट बाइंडिंग (जिसे "डायनमिक बाइंडिंग" भी कहा जाता है) संदर्भित करता है कि सामान्य रूप से क्या होता है जब वर्चुअल कीवर्ड का उपयोग विधि को प्रकट करने में किया जाता है। C++ आभासी तालिका बनाता है, जो ऐसे कार्यों के लिए एक तालिका है जिसे कॉल किए जाने पर हमेशा परामर्श किया जाएगा।<ref>{{cite web|author= |url=http://www.learncpp.com/cpp-tutorial/125-the-virtual-table/ |title=12.5 — The virtual table « Learn C |publisher=Learncpp.com |date=2008-02-08 |accessdate=2013-08-16}}</ref> सामान्यत: लेट बाइंडिंग शब्द का उपयोग [[गतिशील प्रेषण|डायनमिक प्रेषण]] के पक्ष में किया जाता है।


===कॉम भाषाओं में लेट बाइंडिंग===
===कॉम भाषाओं में लेट बाइंडिंग===
COM प्रोग्रामिंग में आईडीआई स्पैच इंटरफेस का उपयोग करके एक लेट-बाउंड मेथड कॉल किया जाता है। कुछ कॉम-आधारित भाषाएँ जैसे मूल दृश्य 6 में इस इंटरफ़ेस को लागू करने के लिए सिंटैक्टिकल समर्थन है। यह वेरिएबल के प्रकार को ऑब्जेक्ट के रूप में परिभाषित करके किया जाता है।<ref>{{cite web|title=Early and Late Binding, Oracle SQL *Module for Ada Programmer's Guide|url=http://download.oracle.com/docs/cd/B19306_01/appdev.102/a58231/ch3.htm#i1007434|publisher=Download.oracle.com|accessdate=2011-01-15}}</ref>   C++ जैसे अन्य लोगों की आवश्यकता है कि आप एक विधि देखने के लिए GetIDsOfNames को स्पष्ट रूप से कॉल करें और इसे कॉल करने के लिए कहे |
COM प्रोग्रामिंग में आईडीआई स्पैच इंटरफेस का उपयोग करके एक लेट-बाउंड मेथड कॉल किया जाता है। कुछ कॉम-आधारित भाषाएँ जैसे मूल दृश्य 6 में इस इंटरफेस को लागू करने के लिए सिंटैक्टिकल समर्थन होता है। यह वेरिएबल के प्रकार को ऑब्जेक्ट के रूप में परिभाषित करके किया जाता है।<ref>{{cite web|title=Early and Late Binding, Oracle SQL *Module for Ada Programmer's Guide|url=http://download.oracle.com/docs/cd/B19306_01/appdev.102/a58231/ch3.htm#i1007434|publisher=Download.oracle.com|accessdate=2011-01-15}}</ref> C++ जैसे अन्य भाषाओ की आवश्यकता है कि आप एक विधि देखने के लिए GetIDsOfNames को स्पष्ट रूप से कॉल करें और इसे कॉल करने के लिए परामर्श दे |


=== NET में लेट बाइंडिंग ===
=== NET में लेट बाइंडिंग ===
.NET में, लेट बाइंडिंग का अर्थ C++ जैसी वर्चुअल विधि को ओवरराइड करना या इंटरफेस लागू करना है। कंपाइलर हर वर्चुअल या इंटरफेस मेथड कॉल के लिए वर्चुअल टेबल बनाता है जिसका उपयोग निष्पादन के कार्यान्वयन को निर्धारित करने के लिए रन-टाइम पर किया जाता है।
.NET में, लेट बाइंडिंग का अर्थ C++ जैसी वर्चुअल विधि को ओवरराइड करना या इंटरफेस लागू करना है। कंपाइलर सभी वर्चुअल या इंटरफेस मेथड कॉल के लिए वर्चुअल टेबल बनाता है जिसका उपयोग निष्पादन के कार्यान्वयन को निर्धारित करने के लिए रन-टाइम पर किया जाता है।


कॉम और जावा की तरह, कॉमन लैंग्वेज रनटाइम रिफ्लेक्शन एपीआई प्रदान करता है जो लेट बाइंडिंग कॉल कर सकता है। इन कॉल्स का उपयोग भाषा के अनुसार भिन्न होता है।
COM और JAVA की तरह, कॉमन लैंग्वेज भी रनटाइम पर रिफ्लेक्शन एपीआई प्रदान करता है जो लेट बाइंडिंग कॉल कर सकता है। इन कॉल्स का उपयोग भाषा के अनुसार भिन्न होता है।


सी # 4 के साथ, भाषा ने डायनमिक कूट प्रकार को भी जोड़ा ताकि यह इंगित करने के लिए ऑब्जेक्ट प्रकार के स्थान पर उपयोग किया जाएगा कि लेट बाइंडिंग उपयोगी है। आवश्यक विशिष्ट लेट बाइंडिंग क्रियाबिधि को डायनेमिक भाषा कार्य समय  को शुरुआती बिंदु के रूप में उपयोग करते हुए कार्य समय पर निर्धारित किया जाता है।
भाषा ने C # 4 के साथ डायनमिक कूट प्रकार को भी जोड़ा ताकि यह इंगित किया जा सके की ऑब्जेक्ट के स्थान पर लेट बाइंडिंग उपयोग है या नहीं | आवश्यक विशिष्ट लेट बाइंडिंग क्रियाबिधि को डायनेमिक भाषा कार्य समय को शुरुआती बिंदु के रूप में उपयोग करते हुए कार्य समय पर निर्धारित किया जाता है।


जब भी वेरिएबल टाइप ऑब्जेक्ट का होता है और कंपाइलर डायरेक्टिव "ऑप्शन स्ट्रिक्ट ऑफ" लागू होता है, तो विजुअल बेसिक उनका उपयोग करता है। यह एक नए वीबी प्रोजेक्ट के लिए न्यूनता समायोजन है। संस्करण 9 से पहले, केवल .NET और COM ऑब्जेक्ट लेट बाउंड हो सकते थे। वीबी 10 के साथ, इसे डीएलआर-आधारित ऑब्जेक्ट तक बढ़ा दिया गया है।
जब भी वेरिएबल ऑब्जेक्ट टाइप का होता है और कंपाइलर डायरेक्टिव "ऑप्शन स्ट्रिक्ट ऑफ" लागू होता है, तो विजुअल बेसिक उनका उपयोग करता है। यह एक नए वीबी प्रोजेक्ट के लिए न्यूनता समायोजन है। संस्करण 9 से पहले, केवल .NET और COM ऑब्जेक्ट लेट बाउंड हो सकते थे। वीबी 10 संस्करण में डीएलआर-आधारित ऑब्जेक्ट को जोड़  दिया गया


=== जावा में लेट बाइंडिंग ===
=== जावा में लेट बाइंडिंग ===
जावा में लेट बाइंडिंग की तीन परिभाषाएँ हैं।
जावा में लेट बाइंडिंग की तीन परिभाषाएँ हैं।


जावा पर प्रारम्भ में दस्तावेजो पर चर्चा की गई कि कैसे  संकलक(कंपाइल) के समय पर क्लासेस को एक साथ नहीं जोड़ा गया था। जबकि प्रकारों को संकलन समय पर सांख्यिकीय रूप से जांचा जाता है, कक्षाओं के लिए अलग-अलग कार्यान्वयनों को रनटाइम से ठीक पहले क्लास फाइल को अधिलेखित करके स्वैप किया जा सकता है। जब तक नई कक्षा की परिभाषा में समान वर्ग और विधि के नाम होते हैं, तब तक कोड काम करेगा। इस अर्थ में यह लेट बाइंडिंग की पारंपरिक परिभाषा के समान है।
जावा पर प्रारम्भ में डक्युमेंट पर चर्चा की गई कि कैसे संकलक(कंपाइल) के समय पर क्लासेस को एक साथ नहीं जोड़ा जा सकता था, जबकि प्रकारों को संकलन(कंपाइल) समय पर सांख्यिकीय रूप से जांचा जा सकता है, क्लासेस के लिए अलग-अलग कार्यान्वयनों को रनटाइम से ठीक पहले क्लास फाइल को अधिलेखित करके स्वैप किया जा सकता है। जब तक नई क्लास की परिभाषा में समान वर्ग और विधि के नाम होते हैं, तब तक कोड काम करता है। इस अर्थ में यह लेट बाइंडिंग की पारंपरिक परिभाषा के समान है।


वर्तमान में, जावा प्रोग्रामिंग में डायनामिक डिस्पैच के पर्याय के रूप में लेट बाइंडिंग शब्द का उपयोग करना लोकप्रिय है। विशेष रूप से, यह जावा के एकल प्रेषण कार्यबिधि को संदर्भित करता है जिसका उपयोग आभासी विधियों के साथ किया जाता है।
वर्तमान में, जावा प्रोग्रामिंग में डायनामिक डिस्पैच के पर्याय के रूप में लेट बाइंडिंग शब्द का उपयोग करना लोकप्रिय है। विशेष रूप से, यह जावा के एकल प्रेषण कार्यबिधि को संदर्भित करता है जिसका उपयोग आभासी विधियों के साथ किया जाता है।


अंत में, जावा अपने प्रतिबिंब एपीआई का उपयोग करके लेट बाइंडिंग का उपयोग कर सकता है और आत्मनिरीक्षण टाइप कर सकता है उसी तरह जैसे यह COM और .NET प्रोग्रामिंग में किया जाता है। आम तौर पर जो केवल जावा में प्रोग्राम करते हैं, वे इस लेट बाइंडिंग को नहीं करते हैं। इसी तरह जावा प्रोग्रामिंग में "डक टाइपिंग" तकनीकों का उपयोग किया जाता है, इसके बजाय अमूर्त इंटरफेस का उपयोग किया जाता है।
अंत में, जावा अपने रिफ्लेक्शन एपीआई का उपयोग करके लेट बाइंडिंग का उपयोग कर सकता है और उसी तरह आत्मनिरीक्षण टाइप कर सकता है जैसे यह COM और .NET प्रोग्रामिंग में किया जाता है। सामान्यत: जो केवल जावा में प्रोग्राम करते हैं, वे लेट बाइंडिंग का उपयोग नहीं करते हैं। इसी तरह अमूर्त इंटरफेस के साथ जावा प्रोग्रामिंग में "डक टाइपिंग" तकनीकों का उपयोग किया जाता है|


जावा के वर्तमान मालिक ओरेक