নিম্নলিখিত কোডের জন্য সুস্পষ্ট ব্যাখ্যা:
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
।