Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में डीप कॉपी और उथली कॉपी

डीप कॉपी और उथली कॉपी दोनों अलग-अलग तरीकों से दिए गए ऑब्जेक्ट की कॉपी बनाने का संदर्भ देते हैं -

उथली कॉपी

यह मूल रूप से ऑब्जेक्ट का एक नया उदाहरण बनाता है और मूल डेटा सेट से सभी डेटा को नए बनाए गए इंस्टेंस में कॉपी करता है। इसका मतलब है कि नव निर्मित उदाहरण को विशेष रूप से मूल वस्तु में डालना होगा। इसे 'उथले क्लोनिंग' के रूप में भी जाना जाता है।

उदाहरण

import java.util.* ;
class Demo{
   private int[] my_data;
   public Demo(int[] my_vals){
      my_data = my_vals;
   }
   public void display_data(){
      System.out.println(Arrays.toString(my_data) );
   }
}
public class Use_Demo{
   public static void main(String[] args){
      int[] my_vals = {56, 89, 91};
      Demo my_inst = new Demo(my_vals);
      my_inst.display_data();
      my_vals[0] = 65;
      my_inst.display_data();
   }
}

आउटपुट

[56, 89, 91]
[65, 89, 91]

डेमो नामक एक वर्ग में एक चर और एक निर्माता होता है जो सरणी के तत्वों को नए सरणी में कॉपी करता है। 'डिस्प्ले_डेटा' नाम का एक अन्य फ़ंक्शन डेटा की इस सरणी को प्रदर्शित करता है। मुख्य फ़ंक्शन में, एक उदाहरण बनाया जाता है, सरणी परिभाषित की जाती है, और फ़ंक्शन को कॉल किया जाता है। कंसोल पर सभी परिवर्तनों के साथ प्रासंगिक आउटपुट प्रदर्शित होता है।

डीप कॉपी

इसका उपयोग तब किया जाता है जब अलग-अलग उद्देश्य या उपयोग के लिए डेटा की एक अलग कॉपी की आवश्यकता होती है। कक्षा के सभी सदस्यों को 'क्लोनेबल' इंटरफ़ेस लागू करने और 'क्लोन' पद्धति को ओवरराइड करने की आवश्यकता है।

उदाहरण

import java.util.*;
class Demo{
   private int[] my_data;
   public Demo(int[] my_vals){
      my_data = new int[my_vals.length];
      for (int i = 0; i < my_data.length; i++){
         my_data[i] = my_vals[i];
      }
   }
   public void display_data(){
      System.out.println(Arrays.toString(my_data));
   }
}
public class Use_Demo{
   public static void main(String[] args){
      int[] my_vals = {56, 89, 91};
      Demo my_inst = new Demo(my_vals);
      my_inst.display_data();
      my_vals[0] = 65;
      my_inst.display_data();
   }
}

आउटपुट

[56, 89, 91]
[56, 89, 91]

डेमो नामक एक वर्ग में एक चर और एक कंस्ट्रक्टर होता है जो सरणी के माध्यम से पुनरावृति करता है, और इसे किसी अन्य सरणी में कॉपी करता है। 'डिस्प्ले_डेटा' नाम का एक अन्य फ़ंक्शन डेटा की इस सरणी को प्रदर्शित करता है। मुख्य फ़ंक्शन में, एक उदाहरण बनाया जाता है, सरणी परिभाषित की जाती है, और फ़ंक्शन को कॉल किया जाता है। कंसोल पर सभी परिवर्तनों के साथ प्रासंगिक आउटपुट प्रदर्शित होता है।


  1. जावा में याद रखना (1D, 2D और 3D) गतिशील प्रोग्रामिंग

    याद रखना गतिशील प्रोग्रामिंग पर आधारित एक तकनीक है जिसका उपयोग पुनरावर्ती एल्गोरिदम के प्रदर्शन को बेहतर बनाने के लिए किया जाता है ताकि यह सुनिश्चित किया जा सके कि प्रदान किए गए इनपुट के परिणामों का रिकॉर्ड रखकर विधि एक से अधिक बार इनपुट के एक ही सेट के लिए नहीं चलती है। एक सरणी। रिकर्सिव विधि के टॉ

  1. हम जावा में JTextArea की कट, कॉपी और पेस्ट कार्यक्षमता को कैसे अक्षम कर सकते हैं?

    A JTextArea JTextComponent . का एक उपवर्ग है वर्ग और यह एक बहु-पंक्ति पाठ घटक . है टेक्स्ट प्रदर्शित करने या उपयोगकर्ता को टेक्स्ट दर्ज करने की अनुमति देने के लिए। एक JTextArea एक CaretListener . उत्पन्न कर सकता है इंटरफ़ेस जब हम JTextArea की कार्यक्षमता को लागू करने का प्रयास कर रहे हैं। डिफ़ॉल्ट

  1. हम जावा में JTextField की कट, कॉपी और पेस्ट कार्यक्षमता को कैसे कार्यान्वित कर सकते हैं?

    एक JTextField JTextComponent . का उपवर्ग है वह वर्ग जो पाठ की एक पंक्ति . के संपादन की अनुमति देता है . हम कट (), कॉपी () और पेस्ट () का उपयोग करके JTextField घटक में कट, कॉपी और पेस्ट की कार्यक्षमता को लागू कर सकते हैं। तरीके। ये पूर्व-निर्धारित हैं JTextFeild वर्ग में विधियाँ। सिंटैक्स सार्वजनि