নিম্নলিখিত কোডের জন্য সুস্পষ্ট ব্যাখ্যা:
StringBuilder sample = new StringBuilder();
StringBuilder referToSample = sample;
referToSample.append("B");
System.out.println(sample);
এটি মুদ্রণ করবে Bযাতে প্রমাণ sampleএবং referToSampleঅবজেক্ট একই মেমরি রেফারেন্স উল্লেখ করে।
StringBuilder sample = new StringBuilder();
StringBuilder referToSample = sample;
sample.append("A");
referToSample.append("B");
System.out.println(referToSample);
এটি মুদ্রণ করবে ABযা একই প্রমাণ করে।
StringBuilder sample = new StringBuilder();
StringBuilder referToSample = sample;
referToSample = null;
referToSample.append("A");
System.out.println(sample);
স্পষ্টতই এটি ফেলে দেবে NullPointerExceptionকারণ আমি appendনাল রেফারেন্সের জন্য কল করার চেষ্টা করছি ।
StringBuilder sample = new StringBuilder();
StringBuilder referToSample = sample;
referToSample = null;
sample.append("A");
System.out.println(sample);
সুতরাং এখানে আমার প্রশ্ন, কেন সর্বশেষ কোড নমুনা নিক্ষেপ করা হচ্ছে না NullPointerExceptionকারণ আমি প্রথম দুটি উদাহরণ থেকে যা দেখছি এবং বুঝতে পারি তা হ'ল যদি দুটি বস্তু একই বস্তুর উল্লেখ করে তবে আমরা যদি কোনও মান পরিবর্তন করি তবে এটি অন্যকেও প্রতিফলিত করবে কারণ উভয়ই নির্দেশ করছে একই মেমরি রেফারেন্স। তাহলে কেন সেই বিধি এখানে প্রয়োগ হচ্ছে না? যদি আমি nullরেফারটোসাম্পলকে অর্পণ করি তবে নমুনাটিও শূন্য হওয়া উচিত এবং এটি একটি নলপয়েন্টারএক্সেপশন নিক্ষেপ করা উচিত তবে এটি একটি নিক্ষেপ করছে না, কেন?




sampleএখনওsample। আপনি কেবল পরিবর্তন করেছেনreferToSample।