ఆటోబాక్సింగ్ (ఇమ్యుటబుల్స్) - 1

"హాయ్, అమిగో!"

"ఈరోజు నేను ఆటోబాక్సింగ్ గురించి చెబుతాను . ఆటోబాక్సింగ్ అంటే ఆటోమేటిక్‌గా ఏదైనా పెట్టెలో పెట్టడం."

"జావాలో ఆబ్జెక్ట్ క్లాస్‌ని, అలాగే ఆదిమ రకాలను వారసత్వంగా పొందే రకాలు ఉన్నాయని మీరు గుర్తుంచుకుంటారు. కానీ సేకరణలు మరియు జెనరిక్స్ వంటి అనుకూలమైన విషయాలు ఆబ్జెక్ట్‌ను వారసత్వంగా పొందే రకాలతో మాత్రమే పని చేస్తాయి."

"అప్పుడు ప్రతి ఆదిమ రకానికి నాన్-ప్రిమిటివ్ కౌంటర్‌పార్ట్‌ను తయారు చేయాలని నిర్ణయం తీసుకోబడింది."

ఆదిమ రకం నాన్-ప్రిమిటివ్ ప్రతిరూపం
బైట్ బైట్
చిన్నది పొట్టి
int పూర్ణ సంఖ్య
పొడవు పొడవు
తేలుతుంది ఫ్లోట్
రెట్టింపు రెట్టింపు
బూలియన్ బూలియన్
చార్ పాత్ర
శూన్యం శూన్యం

"కానీ అన్ని సమయాలలో ఈ రకాల మధ్య మార్చడం చాలా అసౌకర్యంగా ఉంటుంది:"

int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();

"ముఖ్యంగా సేకరణలతో నేరుగా పని చేస్తున్నప్పుడు:"

ఉదాహరణ
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
 list.add( new Integer(i));
}

"అందుకే జావా సృష్టికర్తలు వారి ఆదిమ రకాలైన "ఆటోబాక్సింగ్"ని మరియు వారి ఆదిమయేతర ప్రతిరూపాలకు 'అన్‌బాక్సింగ్'ని కనుగొన్నారు."

"ఇది ఎలా పని చేస్తుందో ఇక్కడ ఉంది:

మీరు ఏమి చూస్తారు నిజంగా ఏమి జరుగుతుంది
int x = 3;
Integer y = x + 1;
int x = 3;
Integer y = Integer.valueOf(x + 1);
int z = y;
int z = y.intValue();
Boolean b = Boolean.FALSE;
boolean a = b;
Boolean b = Boolean.FALSE;
boolean a = b.booleanValue();
Integer x = null;
int y = x;
Integer x = null; int y = x.intValue(); //Throws an exception

"ఇదంతా చాలా సులభం. మీరు పూర్ణాంక మరియు పూర్ణాంకాల రకాలను ఒకదానికొకటి కేటాయించవచ్చు మరియు కంపైలర్ మిగతావన్నీ చూసుకుంటుంది."

"ఇది చాలా సౌకర్యవంతంగా ఉంటుంది."

"అవును. అయితే కొన్ని సూక్ష్మాంశాలు ఉన్నాయి, నేను తరువాత మాట్లాడతాను."