ஜாவாவில் ஆழமற்ற நகல் மற்றும் ஆழமான நகலை எவ்வாறு செயல்படுத்துவது

இந்த கட்டுரை ஜாவாவில் ஆழமற்ற நகல் மற்றும் ஆழமான நகல் பற்றிய விரிவான மற்றும் விரிவான அறிவை எடுத்துக்காட்டுகளுடன் உங்களுக்கு வழங்கும்.

குளோனிங் என்பது ஒரு பிரதி அல்லது நகலை உருவாக்கும் செயல்முறையாகும் பொருள், குளோன் முறை Java.lang.Object ஒரு பொருளின் நகல் அல்லது பிரதி உருவாக்க பயன்படுகிறது. குளோனபிள் இடைமுகத்தை செயல்படுத்தும் ஜாவா பொருள்கள் குளோன் முறையைப் பயன்படுத்த தகுதியுடையவை. இந்த கட்டுரையில், மேலோட்டமான நகல் மற்றும் ஆழமான நகலை பின்வரும் வரிசையில் விவாதிப்போம்:

sql சேவையக ஒருங்கிணைப்பு சேவைகள் பயிற்சி

ஜாவா பொருளின் நகலை உருவாக்குதல்

ஜாவா பொருளின் பிரதி அல்லது நகலை நாம் உருவாக்கலாம்





1. பொருளின் நகலை வேறு நினைவக இடத்தில் உருவாக்குதல். இது ஆழமான நகல் என்று அழைக்கப்படுகிறது.

2. அதே நினைவக இடத்தை சுட்டிக்காட்டும் புதிய குறிப்பை உருவாக்குதல். இது ஒரு ஆழமற்ற நகல் என்றும் அழைக்கப்படுகிறது.



மேலோட்டமான நகல்

குளோன் முறையின் இயல்புநிலை செயலாக்கம் மூல பொருளின் ஆழமற்ற நகலை உருவாக்குகிறது, இதன் பொருள் பொருள் பொருளின் புதிய நிகழ்வு உருவாக்கப்பட்டது, இது அனைத்து புலங்களையும் ஒரு புதிய நிகழ்வுக்கு நகலெடுத்து ‘பொருள்’ வகையின் புதிய பொருளை வழங்குகிறது. இந்த பொருள் வெளிப்படையாக மூல பொருளின் வகை வகைகளில் தட்டச்சு செய்யப்பட வேண்டும்.

இந்த பொருள் பழமையான வகை மற்றும் பொருள் குறிப்புகள் உட்பட மூல பொருளின் அனைத்து புலங்களின் சரியான நகலைக் கொண்டிருக்கும். மூலப் பொருளில் புலத்தில் உள்ள பிற பொருள்களுக்கு ஏதேனும் குறிப்புகள் இருந்தால், புதிய நிகழ்வில் அந்த பொருள்களைப் பற்றிய குறிப்புகள் மட்டுமே இருக்கும், அந்த பொருட்களின் நகல் உருவாக்கப்படவில்லை. இதன் பொருள் நாம் மேலோட்டமான நகலில் மாற்றங்களைச் செய்தால், மாற்றங்கள் மூலப் பொருளில் பிரதிபலிக்கும். இரண்டு நிகழ்வுகளும் சுயாதீனமானவை அல்ல.

பொருள் வகுப்பில் உள்ள குளோன் முறை இயற்கையில் பாதுகாக்கப்படுகிறது, எனவே எல்லா வகுப்புகளும் குளோன் () முறையைப் பயன்படுத்த முடியாது. நீங்கள் குளோனபிள் இடைமுகத்தை செயல்படுத்த வேண்டும் மற்றும் குளோன் முறையை மேலெழுத வேண்டும். குளோனபிள் இடைமுகம் செயல்படுத்தப்படாவிட்டால், நீங்கள் க்ளோன்நொட்ஸப்போர்ட் எக்ஸ்செப்சன்.சுப்பர்.கோலோன் () பொருள் வகுப்பில் செயல்படுத்தப்படுவதால் ஆழமற்ற நகலைத் தரும்.



மேலோட்டமான நகலுக்கான குறியீடு

தொகுப்பு com.test வகுப்புத் துறை {சரம் empId சரம் தர சரம் பதவி பொதுத் துறை (சரம் empId, சரம் தரம், சரம் பதவி) {this.empId = empId this.grade = grade this.designation = பதவி}} வகுப்பு ஊழியர் குளோனபிள் {int ஐடி சரம் பெயர் துறை பொது பணியாளர் (எண்ணாக ஐடி, சரம் பெயர், துறை துறை) {this.id = id this.name = name this.dept = dept} // குளோன் () முறையின் இயல்புநிலை பதிப்பு. இது ஒரு பொருளின் ஆழமற்ற நகலை உருவாக்குகிறது. பாதுகாக்கப்பட்ட பொருள் குளோன் () குளோன்நோட் ஆதரவு எக்ஸ்செஷன் வீசுகிறது {சூப்பர் சூப்பர் க்ளோன் ()}} பொது வகுப்பு ஷாலோ கோபிஇன்ஜாவா {பொது நிலையான வெற்றிட மெயின் (சரம் [] ஆர்க்ஸ்) {துறை dept1 = புதிய துறை ('1', 'ஏ', 'ஏவிபி') பணியாளர் emp1 = புதிய பணியாளர் (111, 'ஜான்', dept1) பணியாளர் emp2 = null try {// emp1 இன் ஒரு குளோனை உருவாக்கி அதை emp2 emp2 = (பணியாளர்) emp1.clone ()} catch (CloneNotSupportedException e) {e. printStackTrace ()} // 'emp1' System.out.println (emp1.dept.designation) என்ற பெயரை அச்சிடுதல் // வெளியீடு: AVP // 'emp2' emp2.dept.designation = 'Director' // இந்த மாற்றம் அசல் பணியாளர் 'emp1' System.out.println (emp1.dept.designation) // இல் பிரதிபலிக்கும்: வெளியீடு: இயக்குனர்}}

வெளியீடு:

Output-Shallow-Copy

மேலே உள்ள எடுத்துக்காட்டில், எங்களிடம் ஒரு பணியாளர் வகுப்பு emp1 உள்ளது, இது மூன்று வகுப்பு மாறி ஐடி (எண்ணாக), பெயர் (சரம்) மற்றும் துறை (துறை) ஆகியவற்றைக் கொண்டுள்ளது.

ஒரு ஆழமற்ற நகலை உருவாக்க இப்போது emp1 ஐ emp2 க்கு குளோன் செய்தோம், அதன் பிறகு நாங்கள் emp2 பொருளைப் பயன்படுத்தி பதவியை மாற்றினோம், அதே மாற்றங்கள் emp1 இல் பிரதிபலிக்கிறதா என்பதை சரிபார்க்கிறோம்.


ஆழமான நகல்

ஒரு பொருளின் ஆழமான நகலில் ஒரு ஆழமற்ற நகல் போன்ற மூலப் பொருளின் அனைத்து புலங்களின் துல்லியமான நகலும் இருக்கும், ஆனால் மூலப் பொருளைப் பொருள்களைப் புலங்களாகக் குறிப்பதாக இருந்தால், சல்லோ நகலைப் போலல்லாமல், குளோனை அழைப்பதன் மூலம் பொருளின் பிரதி உருவாக்கப்படுகிறது முறை. இதன் பொருள் மூல மற்றும் இலக்கு பொருள்கள் இரண்டும் ஒருவருக்கொருவர் சுயாதீனமாக உள்ளன. குளோன் செய்யப்பட்ட பொருளில் செய்யப்பட்ட எந்த மாற்றமும் மூல பொருளை பாதிக்காது.

ஆழமான நகலுக்கான குறியீடு

ஜாவாவில் இடைநிலை என்ன
தொகுப்பு com.test வகுப்புத் துறை குளோனபிள் {சரம் எம்பிட் சரம் தர சரம் பதவி பொதுத் துறை (சரம் எம்பிட், சரம் தரம், சரம் பதவி) {this.empId = empId this.grade = grade this.designation = பதவி} // குளோனின் இயல்புநிலை பதிப்பு () முறை. பாதுகாக்கப்பட்ட பொருள் குளோன் () க்ளோன்நொட்ஸப்போர்ட் எக்ஸ்செஷன் வீசுகிறது {சூப்பர் சூப்பர் க்ளோன் ()}} வகுப்பு ஊழியர் குளோனபிள் {இன்ட் ஐடி சரம் பெயர் துறை பொது ஊழியரை (எண்ணாக ஐடி, சரம் பெயர், துறை துறை) {this.id = id this.name = name this.dept = dept} // ஒரு பொருளின் ஆழமான நகலை உருவாக்க குளோன் () முறையை மீறுகிறது. பாதுகாக்கப்பட்ட பொருள் குளோன் () CloneNotSupportedException ஐ வீசுகிறது {பணியாளர் emp = (பணியாளர்) super.clone () emp.dept = (துறை) dept.clone () return emp}} public class DeepCopyInJava {public static void main (string [] args) { துறை dept1 = புதிய துறை ('1', 'A', 'AVP') பணியாளர் emp1 = புதிய பணியாளர் (111, 'ஜான்', dept1) பணியாளர் emp2 = null try {// emp1 இன் குளோனை உருவாக்கி அதை emp2 க்கு ஒதுக்குதல் emp2 = (பணியாளர்) emp1.clone ()} பிடிக்கவும் (CloneNotSupportedException e) {e.printStackTrace ()} // 'emp1' System.out.println (emp1.dept.designation) இன் பெயரை அச்சிடுதல் // வெளியீடு: AVP / / 'Emp2' emp2.dept.designation = 'இயக்குனர்' என்ற பெயரை மாற்றுதல் இந்த மாற்றம் அசல் பணியாளர் 'emp1' System.out.println (emp1.dept.designation) // இல் பிரதிபலிக்கும்: வெளியீடு: AVP}}

வெளியீடு:

ஆழமான நகலின் மேலேயுள்ள எடுத்துக்காட்டில், மேலோட்டமான நகலைப் போலன்றி, மூல மற்றும் இலக்கு பொருள்கள் இரண்டும் ஒருவருக்கொருவர் சுயாதீனமாக உள்ளன. Emp2 இல் செய்யப்பட்ட எந்த மாற்றமும் emp1 ஐ பாதிக்காது.

ஆழமற்ற நகலுக்கும் ஆழமான நகலுக்கும் உள்ள வேறுபாடு

மேலோட்டமான நகல் ஆழமான நகல்
குளோன் செய்யப்பட்ட பொருள் மற்றும் மூல பொருள் ஆகியவை முற்றிலும் ஒத்துப்போகவில்லைகுளோன் செய்யப்பட்ட பொருள்கள் மற்றும் மூல பொருள்கள் ஒருவருக்கொருவர் முற்றிலும் சுயாதீனமானவை.
குளோன் செய்யப்பட்ட நிகழ்வில் செய்யப்பட்ட மாற்றங்கள் மூல பொருளின் குறிப்பு மாறியை பாதிக்கும்குளோன் செய்யப்பட்ட நிகழ்வில் செய்யப்பட்ட மாற்றங்கள் மூல பொருளின் குறிப்பு மாறியை பாதிக்காது.
குளோனின் இயல்புநிலை பதிப்பு ஆழமற்ற நகலாகும்ஆழமான நகலை உருவாக்க, பொருள் வகுப்பின் குளோன் முறையை மேலெழுத வேண்டும்.
பொருளின் வர்க்க மாறிகள் புலங்களாக பழமையான வகையாக இருந்தால் ஆழமற்ற நகல் விரும்பப்படுகிறதுபொருளின் வர்க்க மாறிகள் மற்ற பொருள்களை புலங்களாகக் கொண்டிருந்தால் ஆழமான நகல் விரும்பப்படுகிறது.
இது ஒப்பீட்டளவில் வேகமானதுஇது ஒப்பீட்டளவில் மெதுவாக உள்ளது.

இதன் மூலம், மேலோட்டமான நகல் மற்றும் ஆழமான நகல் கட்டுரையின் முடிவுக்கு வருகிறோம். இருவருக்கும் இடையிலான பல்வேறு வேறுபாடுகள் குறித்து உங்களுக்கு ஒரு புரிதல் கிடைத்தது என்று நம்புகிறேன்.

பாருங்கள் உலகெங்கிலும் பரவியுள்ள 250,000 க்கும் மேற்பட்ட திருப்தியான கற்றவர்களின் வலைப்பின்னலுடன் நம்பகமான ஆன்லைன் கற்றல் நிறுவனமான எடுரேகாவால். ஜுவா டெவலப்பராக விரும்பும் மாணவர்கள் மற்றும் நிபுணர்களுக்காக எடுரேகாவின் ஜாவா ஜே 2 இஇ மற்றும் எஸ்ஓஏ பயிற்சி மற்றும் சான்றிதழ் பாடநெறி வடிவமைக்கப்பட்டுள்ளது.

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? இந்த “மேலோட்டமான நகல் மற்றும் ஆழமான நகல்” வலைப்பதிவின் கருத்துகள் பிரிவில் இதைக் குறிப்பிடவும், விரைவில் நாங்கள் உங்களிடம் வருவோம்.