1. జావా సంస్కరణల చరిత్ర
జావా చరిత్ర 1991లో ప్రారంభమవుతుంది, సన్ ప్రోగ్రామర్ల బృందం చిన్న పరికరాల కోసం భాషను రూపొందించాలని నిర్ణయించుకుంది: టీవీ రిమోట్ కంట్రోల్లు, కాఫీ మేకర్స్, టోస్టర్లు, బ్యాంక్ కార్డ్లు మొదలైనవి.
ఈ పరికరాల తయారీదారులు తమ ఉత్పత్తులను నియంత్రించడానికి చాలా భిన్నమైన ప్రాసెసర్లను ఉపయోగించారు, కాబట్టి నిర్దిష్ట ప్రాసెసర్ లేదా OS యొక్క ఆర్కిటెక్చర్తో ముడిపడి ఉండటం చాలా ముఖ్యమైనది.
జావా సృష్టికర్తలు సమస్యను రెండు భాగాలుగా విభజించాలని నిర్ణయించుకున్నారు: వారి ప్రోగ్రామ్లు నిర్దిష్ట ప్రాసెసర్ కోసం మెషిన్ కోడ్లో కాకుండా ప్రత్యేక ఇంటర్మీడియట్ కోడ్గా సంకలనం చేయబడతాయి. ప్రతిగా, ఆ ఇంటర్మీడియట్ కోడ్ వర్చువల్ మెషీన్ అని పిలువబడే ప్రత్యేక ప్రోగ్రామ్ ద్వారా అమలు చేయబడుతుంది .
చాలా మంది ప్రోగ్రామర్లు కంప్యూటర్ను యంత్రంగా సూచిస్తారు.
C++ జావా భాషకు ప్రాతిపదికగా తీసుకోబడింది మరియు చాలా సరళీకృతం చేయబడింది మరియు ప్రమాణీకరించబడింది. C++ మీరు ఏదైనా 10 విధాలుగా చేయడానికి అనుమతిస్తే, జావా వాటిలో ఒకదానిని మాత్రమే నిలుపుకుంది. కొన్ని మార్గాల్లో ఇది చిత్రలిపి నుండి వర్ణమాలకి మారడం వంటిది.
జావా యొక్క మొదటి వెర్షన్ 1996లో విడుదలైంది. ఆ సమయం నుండి, జావా ప్రపంచవ్యాప్తంగా తన విజయోత్సవ యాత్రను ప్రారంభించింది, ఇది భాష యొక్క పరిణామం మరియు అభివృద్ధిని ప్రేరేపించింది. నేడు, మిలియన్ల కొద్దీ లైబ్రరీలు మరియు బిలియన్ల కోడ్ లైన్లు జావాలో వ్రాయబడ్డాయి మరియు జావా యొక్క కొత్త వెర్షన్లు ప్రతి 6 నెలలకు విడుదల చేయబడతాయి:
పేరు | సంవత్సరం | తరగతుల సంఖ్య |
---|---|---|
JDK 1.0 | 1996 | 211 |
JDK 1.1 | 1997 | 477 |
J2SE 1.2 | 1998 | 1,524 |
J2SE 1.3 | 2000 | 1,840 |
J2SE 1.4 | 2002 | 2,723 |
J2SE 5.0 | 2004 | 3,279 |
జావా SE 6 | 2006 | 3,793 |
జావా SE 7 | 2011 | 4,024 |
జావా SE 8 | 2014 | 4,240 |
జావా SE 9 | 2017 | 6,005 |
జావా SE 10 | 2018 | 6,002 |
జావా SE 11 | 2018 | 4,411 |
జావా SE 12 | 2019 | 4,433 |
జావా SE 13 | 2019 | 4,515 |
జావా సంస్కరణలు క్రమం తప్పకుండా విడుదల చేయబడినప్పటికీ, అవన్నీ ప్రోగ్రామర్లకు సమానమైన ప్రాముఖ్యతను కలిగి లేవు: జావా ఫిట్స్ మరియు స్టార్ట్లలో అభివృద్ధి చెందింది.
2. జావా 2
JDK 1.2 విడుదలతో మొదటి పెద్ద లీపు ఏర్పడింది. ఇది అక్కడ చాలా ఆవిష్కరణలను కలిగి ఉంది, జావా సృష్టికర్తలు దీనిని జావా 2 ప్లాట్ఫారమ్ స్టాండర్డ్ ఎడిషన్ లేదా సంక్షిప్తంగా J2SE 1.2 అని పేరు మార్చారు.
ప్రధాన ఆవిష్కరణలు:
strictfp
కీవర్డ్- గ్రాఫిక్స్తో పని చేయడానికి స్వింగ్ లైబ్రరీ
- JIT కంపైలర్, ఇది జావా ప్రోగ్రామ్ల అమలును వేగవంతం చేసింది
- కలెక్షన్ల భారీ సెట్
- పూర్తి యూనికోడ్ మద్దతు: జపనీస్, చైనీస్ మరియు కొరియన్.
నేడు, ఈ ఆవిష్కరణలు అంత పెద్దవిగా కనిపించవు, కానీ ప్రతి పెద్ద ప్రాజెక్ట్ చిన్నదాని నుండి పెరుగుతుంది. 20 సంవత్సరాల క్రితం ప్రోగ్రామర్ల యొక్క చిన్న సమూహం భాషను మెరుగుపరచకుండా ఉంటే జావా ఈ రోజు అంత ప్రజాదరణ పొంది ఉండేది కాదు.
3. జావా 5
JDK 1.5 సెప్టెంబరు 2004లో విడుదలైంది. ఇది చాలా ఆవిష్కరణలను కూడా పరిచయం చేసింది, కాబట్టి ఇది కొత్త పేరును పొందడంలో సహాయపడలేదు: 1.5, 1.6 మరియు 1.7 సంస్కరణలకు బదులుగా, వారు 5.0, 6.0 మరియు 7.0లను ఉపయోగించాలని నిర్ణయించుకున్నారు. కాబట్టి, JDK 1.5 పూర్తి పేరు జావా 2 స్టాండర్డ్ ఎడిషన్ 5.0
ఈ నవీకరణలో భాష యొక్క తదుపరి అభివృద్ధి సాధ్యం కాని అంశాలను చేర్చింది.
ఉల్లేఖనాలు . ప్రధాన ఆధునిక ఫ్రేమ్వర్క్లలో సగం స్ప్రింగ్ మరియు హైబర్నేట్ నుండి జూనిట్ వరకు ఉల్లేఖనాలపై నిర్మించబడ్డాయి.
జెనరిక్స్ . జనరిక్స్ సేకరణల శక్తిని (మరియు మరిన్ని) కొత్త ఎత్తులకు తీసుకువెళ్లింది. కోడ్ సరళమైనది, మరింత కాంపాక్ట్ మరియు సురక్షితమైనదిగా మారింది.
ఆటోబాక్సింగ్/అన్బాక్సింగ్ అనేది ఆదిమ రకాలు మరియు వాటి రేపర్ రకాల మధ్య ఆటోమేటిక్ మార్పిడి. ఇది కోడ్ రాయడం మరియు చదవడం చాలా సులభతరం చేసింది మరియు సేకరణలను మరింత జనాదరణ పొందింది.
లూప్ ఇప్పుడు ప్రోగ్రామర్లు వ్రాసే అన్ని foreach
లూప్లలో కనీసం సగం వరకు ఉంటుంది. మరియు, వాస్తవానికి, సేకరణలతో పనిచేసేటప్పుడు ఇది ఎంతో అవసరం.
enum మరొక మంచి కొత్త ఫీచర్ . ఇది చాలా విషయాలను అందంగా సరళీకృతం చేయడానికి అనుమతిస్తుంది.
ఇవి అన్ని ఆవిష్కరణలు కాదు: వందల కొద్దీ కొత్త తరగతులు జోడించబడ్డాయి. ముఖ్యమైన విషయం ఏమిటంటే అవి సరైన ఆవిష్కరణలు మరియు జావా యొక్క ప్రజాదరణకు మరొక శక్తివంతమైన ప్రోత్సాహాన్ని అందించాయి.
4. జావా 6
జావా 6 పెద్ద సంఖ్యలో చిన్న మెరుగుదలలు మరియు పేరులోని సంఖ్య 2ని వదిలివేయడం కోసం గుర్తుంచుకోబడుతుంది: ఇది ఇకపై "జావా 2 స్టాండర్డ్ ఎడిషన్ 6.0" కాదు, కేవలం "జావా స్టాండర్డ్ ఎడిషన్ 6.0".
ఇక్కడ కొన్ని ఆసక్తికరమైన ఆవిష్కరణలు ఉన్నాయి:
జావా కంపైలర్ API కోడ్ నుండి నేరుగా జావా కంపైలర్కి కాల్ చేయడం సాధ్యం చేసింది . అంటే మీ ప్రోగ్రామ్ ఇప్పుడు క్లాస్ కోడ్ను సూచించే టెక్స్ట్ను రూపొందించగలదు, జావా కంపైలర్ API యొక్క పద్ధతులను కాల్ చేయడం ద్వారా దాన్ని కంపైల్ చేసి , ఆపై వెంటనే కంపైల్ చేయబడిన క్లాస్ యొక్క పద్ధతులకు కాల్ చేయడం ప్రారంభించవచ్చు. ఈ సామర్థ్యం జీవితాన్ని చాలా సులభతరం చేసే మొత్తం అభివృద్ధి ప్రాంతాలు ఉన్నాయి.
జావా ప్రోగ్రామ్లో నేరుగా జావాస్క్రిప్ట్ని అమలు చేయడం సాధ్యమైంది . JavaSE 6 రినో జావాస్క్రిప్ట్ ఇంజిన్ను కలిగి ఉన్నందున ఈ ఫీచర్ కనిపించింది.
5. జావా 7
జావా 7 జూలై 2011లో విడుదలైంది. ఇందులో చాలా మెరుగుదలలు ఉండాల్సి ఉంది, అయితే ప్రోగ్రామర్లు అనుకున్నదానిలో కొంత భాగాన్ని మాత్రమే జోడించగలిగారు. ముఖ్యంగా, వారు ఇలాంటి వాటిని జోడించారు:
డేటా ఇన్పుట్ మరియు అవుట్పుట్తో పని చేయడానికి కొత్త లైబ్రరీ. కొత్త ఇన్పుట్ అవుట్పుట్ API అని పిలుస్తారు , ఇది ప్యాకేజీలో ఉంది java.nio
.
కంపైల్ సమయంలో జావా కంపైలర్ యొక్క ఆటోమేటిక్ టైప్ ఇన్ఫరెన్స్ ప్రోగ్రామర్లు తక్కువ కోడ్ను వ్రాయడానికి అనుమతిస్తుంది. కంపైలర్ తెలివిగా మారింది మరియు అది ప్రారంభం మాత్రమే.
స్విచ్ స్టేట్మెంట్ స్ట్రింగ్లను కేస్ విలువలుగా ఉపయోగించగల సామర్థ్యాన్ని పొందింది.
ఆటోమేటిక్ రిసోర్స్ మేనేజ్మెంట్ కూడా గణనీయంగా మెరుగుపడింది: నిర్మాణంతో try-with-resources
, జావా ప్రోగ్రామ్ మీ కోసం డేటా స్ట్రీమ్లు అవసరం లేనప్పుడు వాటిని మూసివేయగలదు.
అనేక ఇతర మార్పులు ఉన్నాయి, కానీ జావా నేర్చుకునే మా ప్రస్తుత దశలో అవి అంత ముఖ్యమైనవి కావు.
6. జావా 8
జావా 8 మార్చి 2014లో విడుదలైంది మరియు ఇది జావా యొక్క బలమైన ఇటీవలి నవీకరణ.
@FunctionalInterface
అన్నింటికంటే మించి, లాంబ్డా ఎక్స్ప్రెషన్లు మరియు ఫంక్షనల్ ఇంటర్ఫేస్ల ( ఉల్లేఖన) జోడింపు కోసం ప్రోగ్రామర్లు దీన్ని గుర్తుంచుకుంటారు . మేము వాటిని 21వ స్థాయి వద్ద పరిశీలిస్తాము. మీ కోడ్ మళ్లీ ఎప్పటికీ ఉండదు.
సేకరణల కోసం స్ట్రీమ్లు కూడా జోడించబడ్డాయి, లాంబ్డా ఎక్స్ప్రెషన్లతో కలిపి, కోడ్ను మరింత కాంపాక్ట్గా వ్రాయడం సాధ్యమైంది. ఎల్లప్పుడూ ఎక్కువ చదవగలిగేది కానప్పటికీ.
మరియు మూడవ పెద్ద మార్పు తేదీలు మరియు సమయాలతో పని చేయడానికి Java 8 యొక్క సరికొత్త APIని ప్రవేశపెట్టడం — తేదీ సమయం API . మేము దానిని సమీప భవిష్యత్తులో అధ్యయనం చేస్తాము.
7. జావా 9
జావా 9 సెప్టెంబర్ 2017లో విడుదలైంది. ఆ సమయం నుండి, జావా సృష్టికర్తలు కొత్త వెర్షన్లను మరింత తరచుగా విడుదల చేయాలని నిర్ణయించుకున్నారు — ప్రతి ఆరు నెలలకు. వారు బహుశా Google Chrome బ్రౌజర్ యొక్క డెవలపర్లు అనుసరించిన విధానం ద్వారా ఆకట్టుకున్నారు.
జావా 9 విడుదల జావా మెషీన్ యొక్క అంతర్గత భాగాలపై ఎక్కువ దృష్టి పెట్టింది. సాధారణ ప్రోగ్రామర్లకు ఇది తీసుకువచ్చిన అత్యంత ముఖ్యమైన విషయం ఏమిటంటే ప్రోగ్రామ్ను మాడ్యూల్స్గా విభజించే సామర్థ్యం. మీకు పదివేల తరగతులు ఉన్నప్పుడు లేదా మీ కోడ్ డైనమిక్గా ప్లగిన్లను అన్లోడ్ చేసినప్పుడు ఇది చాలా సౌకర్యవంతంగా ఉంటుంది.
కానీ ఇది సమీప భవిష్యత్తులో మనకు చాలా తక్కువ ఉపయోగం.
8. జావా 11
జావా 9 విడుదలైన ఆరు నెలల తర్వాత, జావా 10 వచ్చింది, మరో ఆరు నెలల తర్వాత, జావా 11 వచ్చింది.
ఈ సమయంలో చాలా చిన్న మెరుగుదలలు చేయబడ్డాయి, కానీ మీరు ఎక్కువగా రెండు మాత్రమే గుర్తుంచుకుంటారు:
ఇది యూనికోడ్ 10కి మద్దతును జోడించింది. ఇప్పుడు మీరు మీ జావా ప్రోగ్రామ్లలో ఎమోజీలను ఉపయోగించవచ్చు. మీరు బూలియన్ రకంతో పని చేసే విధంగానే మీరు వారితో పని చేయవచ్చు:
రకం అనుమితి మెరుగుపరచబడింది మరియు మీరు ఖచ్చితంగా ఇష్టపడే var
కీవర్డ్ కనిపించింది.
ఇప్పుడు మీరు ఈ క్రింది వాటిని వ్రాయవచ్చు:
var str = "Hello";
మరియు కంపైలర్ దీనిని ఇలా మారుస్తుంది:
String str = "Hello";
అయితే కొన్ని నష్టాలు కూడా వచ్చాయి. Java సృష్టికర్తలు JDK 11 నుండి JavaFX, Java EE మరియు CORBA వంటి లైబ్రరీలను తొలగించారు.
9. అనుకూలత యొక్క ప్రాముఖ్యత
కొత్త వెర్షన్ విడుదలైనప్పుడు, ప్రోగ్రామర్లు చాలా తరచుగా మొదటి నుండి ప్రారంభించాలనుకుంటున్నారు. అన్నింటికంటే, పాత బగ్ల సమూహాన్ని వారు పూర్తిగా సానుకూలంగా ఉన్నప్పుడు, కోడ్ని మొదటి నుండి ఎలా వ్రాయాలి అని ఎవరు పరిష్కరించాలనుకుంటున్నారు?
కానీ చరిత్ర అలాంటి విధానాన్ని సమర్థించదు. ప్రోగ్రామర్లు ప్రోగ్రామ్ యొక్క క్రొత్త సంస్కరణను విడుదల చేసిన ప్రతిసారీ, దాని వినియోగదారులలో 90% పాత సంస్కరణను ఉపయోగిస్తున్నారు. వారు ప్రోగ్రామ్ యొక్క కొత్త ఫీచర్లను ఉపయోగించవచ్చు లేదా విస్మరించవచ్చు, అయితే వినియోగదారులు ద్వేషించేది బాగా పని చేసేది పనిచేయడం ఆగిపోయినప్పుడు.
ప్రోగ్రామర్లు అనుకూలత లేని కొత్త వెర్షన్లను విడుదల చేసినప్పుడు చాలా గొప్ప ఉత్పత్తులు చనిపోయాయి. లేదా వారు పెద్ద మార్పులు చేసినప్పుడు. ఉదాహరణకు, విండోస్ 8లో స్టార్ట్ బటన్ను వదిలివేయాలనే ఆలోచన వినియోగదారులకు నచ్చలేదు. విండోస్ 10 విడుదల విండో 8లో తీసివేయబడిన దానిలో సగం తిరిగి తెచ్చింది.
ఇంకా ఏమిటంటే, Windows 95 కోసం 20 సంవత్సరాల క్రితం వ్రాసిన లేదా MS DOS 3.0 కోసం 30 సంవత్సరాల క్రితం వ్రాసిన ప్రోగ్రామ్లను అమలు చేయడానికి Windows మిమ్మల్ని అనుమతిస్తుంది - అవి పని చేస్తాయి. విండోస్ జనాదరణ పొందటానికి ఇది ఒక కారణం.
మరియు దాని డెవలపర్లు అనుకూలత గురించి పట్టించుకోకపోతే జావా అంత ప్రజాదరణ పొందదు. Java మెషీన్ యొక్క కొత్త వెర్షన్, SDK యొక్క కొత్త వెర్షన్ లేదా తరగతులకు పెద్ద మార్పులు ఎప్పుడైనా వచ్చినప్పుడు, జనవరి 1996 నుండి వ్రాసిన అన్ని జావా కోడ్ పని చేస్తూనే ఉంటుంది.
ఇది సాధారణంగా ఏదైనా తీసివేయకుండా, కొత్త పద్ధతులు, తరగతులు మరియు ప్యాకేజీలను జోడించడం ద్వారా మాత్రమే సాధించబడుతుంది. ఈ విధానం దాని లాభాలు మరియు నష్టాలను కలిగి ఉంది.
ఒకవైపు, పాత, ఉపశీర్షిక మరియు అనవసరమైన కోడ్ రూపంలో జావా సామాను గుంపు చుట్టూ లాగుతుంది. మరోవైపు, Java 11లో వ్రాసిన మీ ప్రాజెక్ట్ Java 5 మరియు Java 2లో వ్రాసిన లైబ్రరీలను ఉపయోగించే Java 8లో వ్రాసిన లైబ్రరీని ఎల్లప్పుడూ ఉపయోగించవచ్చు. ఈ కోడ్ యొక్క హాడ్జ్పాడ్జ్ బాగా పని చేస్తుంది.
C++ భాషతో, 32-బిట్ మరియు 64-బిట్ ప్లాట్ఫారమ్ల కోసం కంపైల్ చేయబడిన లైబ్రరీలు ఒకే ప్రాజెక్ట్లో ఉపయోగించబడవు. char
ఒక లైబ్రరీలో ఉపయోగించిన రకం ఒక బైట్ని ఉపయోగిస్తుండగా, మరొకటి రెండు బైట్లను ఉపయోగిస్తుందని మీరు అకస్మాత్తుగా కనుగొంటే మీకు పెద్ద తలనొప్పి వస్తుంది .
10. తిరస్కరించబడింది
కాబట్టి, జావా సృష్టికర్తలు ఏదైనా తీసివేయకూడదని నిర్ణయించుకున్నారు, కానీ కొత్త తరగతులు మరియు ప్యాకేజీలను మాత్రమే జోడించాలని నిర్ణయించుకున్నారు. అయితే ఇప్పటికే ఉన్న సబ్ప్టిమల్ సొల్యూషన్కు కొత్త విలువైన ప్రత్యామ్నాయం ఉందని ప్రోగ్రామర్లకు ఎలా తెలియజేస్తారు?
దీన్ని చేయడానికి, వారు ఉల్లేఖనాన్ని రూపొందించారు @Deprecated
.
ఏదైనా పద్ధతి లేదా తరగతి విస్మరించబడితే, ఈ ఉల్లేఖనం దాని ప్రకటన పక్కన జోడించబడుతుంది. ప్రోగ్రామర్లు కోడ్ని ఉపయోగించకుండా నిరుత్సాహపరిచారని దీని అర్థం.
మీరు ఇప్పటికీ నిలిపివేయబడిన తరగతి లేదా పద్ధతిని ఉపయోగించవచ్చు, కానీ ఇది సిఫార్సు చేయబడదు.
మరియు సిఫార్సు చేయని పనులను వ్యక్తులు ఎంత తరచుగా చేస్తారు? దాదాపు ఎల్లప్పుడూ 🙂
అనేక తరగతులు 20 సంవత్సరాలుగా నిలిపివేయబడ్డాయి - అవి ఉపయోగించబడ్డాయి మరియు ఇప్పటికీ ఉపయోగించబడుతున్నాయి. ప్రజలు వారితో సుపరిచితులు లేదా వారు కేవలం సౌకర్యవంతంగా ఉంటారు. కానీ అవి ఎప్పుడో తొలగిపోయే ప్రమాదం ఉంది కాబట్టి వాటిని ఉపయోగించకపోవడమే మంచిది.
IntelliJ IDEAతో సహా అన్ని ఆధునిక IDEలు ఉల్లేఖనాన్ని నిర్వహించగలవు @Deprecated
. స్ట్రైక్త్రూ ఫార్మాటింగ్ని ఉపయోగించి నిలిపివేయబడిన తరగతుల పేర్లు మరియు పద్ధతుల పేర్లు ప్రదర్శించబడతాయి . ఇలాంటిది ఏదైనా:
Date date = new Date();
int day = date.getDay();
తిరస్కరించబడిన తరగతులు చాలా ప్రజాదరణ పొందాయి మరియు తరచుగా కోడ్లో కనిపిస్తాయి, కాబట్టి మేము వాటిలో కొన్నింటిని త్వరలో పరిశీలిస్తాము.
GO TO FULL VERSION