జావా 9 ఫీచర్స్ మరియు మెరుగుదలలు



ఈ బ్లాగులోని ప్రాజెక్ట్ జా & ప్రధాన జావా 9 లక్షణాల క్రింద అభివృద్ధి చేయబడిన మాడ్యులర్ ఫ్రేమ్‌వర్క్ JShell (REPL సాధనం), ముఖ్యమైన API మార్పులు & JVM- స్థాయి మార్పులు.

జావా 9 మరియు జావా 9 ఫీచర్ల విడుదల జావా పర్యావరణ వ్యవస్థకు ఒక మైలురాయి.సాంకేతిక పరిజ్ఞానంతో తాజాగా ఉండటానికి మరియు పరిచయం చేయబడిన వాటి వెనుక ఉన్న అవసరాన్ని అర్థం చేసుకోవడానికి కొత్త విడుదలలను కొనసాగించడం చాలా ముఖ్యం .ప్రాజెక్ట్ జా కింద అభివృద్ధి చేయబడిన మాడ్యులర్ ఫ్రేమ్‌వర్క్ ఈ జావా SE విడుదలలో భాగంగా ఉంటుంది మరియు JVM యొక్క పనితీరు మరియు డీబగ్బిలిటీని మెరుగుపరచడానికి JShell (REPL సాధనం), ముఖ్యమైన API మార్పులు మరియు JVM- స్థాయి మార్పులు వీటిలో ప్రధాన లక్షణాలు.

మేము జావా 9 లక్షణాలను వివరంగా విప్పుటకు ముందు మునుపటి జావా సంస్కరణలను పరిశీలించి, లోపాలు ఏమిటి మరియు ఆ క్రమరాహిత్యాలను అధిగమించడానికి జావా 9 ఎలా సహాయపడ్డాయో చూద్దాం: -





  • చిన్న కంప్యూటింగ్ పరికరాల కోసం జావా స్టాండర్డ్ ఎడిషన్ ప్లాట్‌ఫాం మరియు జెడికె నావిగేట్ కాలేదు
  • JDK యొక్క మొత్తం భద్రత మరియు నిర్వహణ లేదు
  • అప్లికేషన్ పనితీరులో మొత్తం మెరుగుదల లేదు
  • జావా SE మరియు EE ప్లాట్‌ఫారమ్‌ల కోసం కోడ్ లైబ్రరీలను మరియు పెద్ద అనువర్తనాలను నిర్మించడం మరియు సమర్థించడం జావా డెవలపర్‌లకు కష్టం.

ఈ బ్లాగ్ పోస్ట్‌లో నేను జావా 9 లక్షణాలను ఈ క్రింది పద్ధతిలో వర్గీకరిస్తాను:



  1. జావా 9 లో API నవీకరణలను ప్రాసెస్ చేయండి
  2. జావా 9 లో HTTP / 2 క్లయింట్
  3. జావా 9 లో జావా షెల్ స్క్రిప్టింగ్ (రీడ్-ఎవాల్-ప్రింట్-లూప్)
  4. జావా 9 లో బహుళ-విడుదల JAR ఫైల్స్ ఫీచర్
  5. జావా 9 లో మరిన్ని సమ్మతి నవీకరణలు ఫీచర్
  6. జావా 9 లో ప్రాజెక్ట్ జా

జావా 9 లో కొత్తది ఏమిటి?

నేను కొన్ని కొత్త జావా 9 లక్షణాలను ఎంచుకున్నాను, వీటి గురించి తెలుసుకోవడం విలువైనదని నేను భావిస్తున్నాను. ఈ లక్షణాలు ఏమిటో చూద్దాం: -

జావా 9 లో API నవీకరణలను ప్రాసెస్ చేయండి

జావా యొక్క ప్రాసెస్ API చాలా ప్రాచీనమైనది,కొత్త ప్రక్రియలను ప్రారంభించడానికి మాత్రమే మద్దతుతో, ప్రక్రియల అవుట్పుట్ మరియు లోపం ప్రవాహాలను మళ్ళించండి. ఈ విడుదలలో, ప్రాసెస్ API కి నవీకరణలు ఈ క్రింది వాటిని ప్రారంభిస్తాయి:

  • ప్రస్తుత JVM ప్రాసెస్ యొక్క PID ను పొందడం మరియు JVM చేత పుట్టుకొచ్చిన ఇతర ప్రక్రియలు
  • PID, పేరు మరియు వనరుల వినియోగం వంటి సమాచారాన్ని పొందడానికి సిస్టమ్‌లో నడుస్తున్న ప్రక్రియలను వివరించండి
  • ప్రాసెస్ చెట్లను నిర్వహించడం
  • ఉపప్రాసెసెస్ నిర్వహణ

ప్రస్తుత PID ని మరియు ప్రస్తుత ప్రాసెస్ సమాచారాన్ని ముద్రించే నమూనా కోడ్‌ను చూద్దాం:



పబ్లిక్ క్లాస్ న్యూ ఫీచర్స్ {పబ్లిక్ స్టాటిక్ వాయిడ్ మెయిన్ (స్ట్రింగ్ [] అర్గ్స్) {ప్రాసెస్‌హ్యాండిల్ కరెంట్‌ప్రోసెస్ = ప్రాసెస్‌హ్యాండిల్.కంటెంట్ () సిస్టమ్.అవుట్.ప్రింట్ల్న్ ('పిఐడి:' + కరెంట్‌ప్రొసెస్.జెట్‌పిడ్ ()) ప్రాసెస్‌హ్యాండిల్ System.out.println ('సమాచారం:' + currentProcessInfo)}

జావా 9 లో HTTP / 2 క్లయింట్

ఈ జావా 9 ఫీచర్ తరువాతి విడుదలలలో మారుతుందని భావిస్తున్నారు మరియు పూర్తిగా తొలగించబడవచ్చు.

అంతకుముందు డెవలపర్లు తరచూ అపాచీ హెచ్‌టిటిపి, జెర్సీ మరియు వంటి మూడవ పార్టీ లైబ్రరీలను ఉపయోగించుకుంటారు. దీనికి తోడు, జావా యొక్క HTTP API HTTP / 1.1 స్పెసిఫికేషన్‌కు ముందే ఉంటుంది మరియు ఇది సమకాలికం మరియు నిర్వహించడం కష్టం. ఈ పరిమితులు క్రొత్త API ని జోడించాల్సిన అవసరం ఉంది. క్రొత్త HTTP క్లయింట్ API ఈ క్రింది వాటిని అందిస్తుంది:

  • చాలా HTTP అభ్యర్ధనలను పరిష్కరించడానికి సరళమైన మరియు సంక్షిప్త API
  • HTTP / 2 స్పెసిఫికేషన్‌కు మద్దతు
  • మంచి పనితీరు
  • మంచి భద్రత
  • మరికొన్ని మెరుగుదలలు

క్రొత్త API లను ఉపయోగించి HTTP GET అభ్యర్థన చేయడానికి నమూనా కోడ్‌ను చూద్దాం. మాడ్యూల్-info.java ఫైల్‌లో నిర్వచించిన మాడ్యూల్ నిర్వచనం క్రింద ఉంది:

మాడ్యూల్ క్రొత్త ఫీచర్స్ j కి jdk.incubator.httpclient అవసరం}

కింది కోడ్ HTTP క్లయింట్ API ని ఉపయోగిస్తుంది, ఇది jdk.incubator.httpclient మాడ్యూల్‌లో భాగం:

దిగుమతి jdk.incubator.http. * దిగుమతి java.net.URI పబ్లిక్ క్లాస్ Http2Feature {పబ్లిక్ స్టాటిక్ వాయిడ్ మెయిన్ (స్ట్రింగ్ [] అర్గ్స్) విసిరిన మినహాయింపు {HttpClient client = HttpClient.newBuilder (). బిల్డ్ () HttpRequest request = HttpRequer .newBuilder. క్రొత్త URI (http://httpbin.org/get)) .GET () .వర్షన్ (HttpClient.Version.HTTP_1_1) .బిల్డ్ () HttpResponse.String response = client.send (request, HttpResponse.BodyHandler.asString ()) System.out.println ('స్థితి కోడ్:' + response.statusCode ())
System.out.println ('ప్రతిస్పందన శరీరం:' + response.body ())}}}

జావా 9 లో జావా షెల్ స్క్రిప్టింగ్ (రీడ్-ఎవాల్-ప్రింట్-లూప్)

రూబీ, స్కాలా, గ్రూవి, క్లోజురే మరియు ఇతరులు ఒక సాధనంతో రవాణా చేయడాన్ని మీరు తప్పక చూస్తారు, దీనిని తరచుగా పిలుస్తారు REPL ( చదవండి-ఎవాల్-ప్రింట్-లూప్ ). భాషా లక్షణాలను ప్రయత్నించడానికి ఈ REPL సాధనం చాలా ఉపయోగపడుతుంది. ఉదాహరణకు, స్కాలాలో, మేము ఒక సాధారణ హలో వరల్డ్ ప్రోగ్రామ్‌ను వ్రాయవచ్చు scala> println (“హలో వరల్డ్”)

యొక్క కొన్ని ప్రయోజనాలు JShell REPL ఈ క్రింది విధంగా ఉన్నాయి:

  • అనుభవజ్ఞులైన డెవలపర్లు తమ ప్రధాన కోడ్ బేస్ లో స్వీకరించడానికి ముందు త్వరగా ప్రోటోటైప్ మరియు ప్రయోగాలు చేయవచ్చు
  • జావా డెవలపర్లు ఇప్పుడు REPL గురించి ప్రగల్భాలు పలుకుతారు

కింది చిత్రంలో చూపిన విధంగా JShell ఆదేశాన్ని అమలు చేద్దాం:

JShell హలో ప్రపంచ ఉదాహరణ - జావా 9 - ఎడురేకా

జావా 9 లో బహుళ-విడుదల JAR ఫైల్స్ ఫీచర్

ప్రస్తుతానికి, JAR ఫైల్స్ వారు సంకలనం చేసిన జావా వెర్షన్‌లో మాత్రమే అమలు చేయగల తరగతులను కలిగి ఉంటాయి. జావా ప్లాట్‌ఫామ్ యొక్క క్రొత్త లక్షణాలను క్రొత్త సంస్కరణల్లో ప్రభావితం చేయడానికి, లైబ్రరీ డెవలపర్లు వారి లైబ్రరీ యొక్క క్రొత్త సంస్కరణను విడుదల చేయాలి. త్వరలో, డెవలపర్లు నిర్వహిస్తున్న లైబ్రరీ యొక్క బహుళ వెర్షన్లు ఉంటాయి, ఇది ఒక పీడకల కావచ్చు. ఈ పరిమితిని అధిగమించడానికి, బహుళ-విడుదల JAR ఫైళ్ళ యొక్క ఈ జావా 9 లక్షణాలు డెవలపర్లు వివిధ జావా వెర్షన్ల కోసం క్లాస్ ఫైళ్ళ యొక్క విభిన్న వెర్షన్లతో JAR ఫైళ్ళను నిర్మించటానికి అనుమతిస్తుంది.కింది ఉదాహరణ మరింత స్పష్టంగా తెలుపుతుంది.

ప్రస్తుత JAR ఫైళ్ళ యొక్క ఉదాహరణ ఇక్కడ ఉంది:

కూజా రూట్ - ఒక తరగతి - బి.క్లాస్ - సి.క్లాస్

బహుళ-విడుదల JAR ఫైల్స్ ఎలా కనిపిస్తాయో ఇక్కడ ఉంది:

కూజా రూట్ - ఒక తరగతి - బి.క్లాస్ - సి.క్లాస్ - మెటా-ఐఎన్ఎఫ్ - సంస్కరణలు - 9 - ఒక తరగతి - 10 - బి.క్లాస్

మునుపటి దృష్టాంతంలో, JAR ఫైల్స్ రెండు జావా వెర్షన్లు -9 మరియు 10 లకు క్లాస్ ఫైళ్ళకు మద్దతు ఇస్తాయి.

సి ++ నేమ్‌స్పేస్ ఉపయోగించి

కాబట్టి, మునుపటి JAR జావా 9 లో అమలు చేయబడినప్పుడు, సంస్కరణల క్రింద A. క్లాస్ - 9 ఫోల్డర్లు అమలు కోసం తీసుకోబడతాయి.

బహుళ-విడుదల JAR ఫైల్‌లకు మద్దతు ఇవ్వని ప్లాట్‌ఫామ్‌లో, సంస్కరణల డైరెక్టరీ క్రింద ఉన్న తరగతులు ఎప్పుడూ ఉపయోగించబడవు. కాబట్టి, మీరు జావా 8 లో బహుళ-విడుదల JAR ఫైల్‌ను నడుపుతుంటే, సాధారణ JAR ఫైల్‌ను అమలు చేయడం మంచిది.

జావా 9 లో మరిన్ని సమ్మతి నవీకరణలు ఫీచర్

ఈ నవీకరణలో, క్రొత్త తరగతి, java.util.concurrent.Flow ప్రవేశపెట్టబడింది, ఇది ప్రచురణ-సభ్యత్వ ఫ్రేమ్‌వర్క్ అమలుకు మద్దతు ఇచ్చే సమూహ ఇంటర్‌ఫేస్‌లను కలిగి ఉంది. ప్రచురణ-సభ్యత్వ ఫ్రేమ్‌వర్క్ డేటాను ఉత్పత్తి చేసే ప్రచురణకర్తలను మరియు చందా ద్వారా డేటాను వినియోగించే చందాదారులను ఏర్పాటు చేయడం ద్వారా వాటిని ప్రత్యక్షంగా వినియోగించగల భాగాలను రూపొందించడానికి డెవలపర్‌లను అనుమతిస్తుంది. నాలుగు కొత్త ఇంటర్‌ఫేస్‌లు ఈ క్రింది విధంగా ఉన్నాయి:

  • java.util.concurrent.Flow.Publisher
  • java.util.concurrent.Flow.Subscriber
  • java.util.concurrent.Flow.Subscription
  • java.util.concurrent.Flow.Processor (ఇది ప్రచురణకర్త మరియు చందాదారుడిగా పనిచేస్తుంది).

జావా 9 లో ప్రాజెక్ట్ జా

ఈ ప్రాజెక్ట్ యొక్క ప్రధాన లక్ష్యం అనే భావనను ప్రవేశపెట్టడం మాడ్యులారిటీ మద్దతు జావా 9 లో మాడ్యూళ్ళను సృష్టించడం కోసం, ఆపై అదే వర్తించండి జెడికె అంటే, JDK ని మాడ్యులైజ్ చేయండి .

వాటిలో కొన్ని లాభాలు యొక్క మాడ్యులారిటీ ఈ క్రింది విధంగా ఉన్నాయి:

  • బలమైన ఎన్కప్సులేషన్ : మాడ్యూల్స్ ఉపయోగం కోసం అందుబాటులో ఉంచబడిన మాడ్యూల్ యొక్క భాగాలను మాత్రమే యాక్సెస్ చేయగలవు. కాబట్టి, మాడ్యూల్ సమాచార ఫైల్‌లో ప్యాకేజీని స్పష్టంగా ఎగుమతి చేయకపోతే ప్యాకేజీలోని పబ్లిక్ క్లాసులు పబ్లిక్ కాదు.
  • డిపెండెన్సీలను క్లియర్ చేయండి : అవసరమయ్యే నిబంధన ద్వారా వారు ఏ ఇతర మాడ్యూళ్ళను ఉపయోగిస్తున్నారో మాడ్యూల్స్ ప్రకటించాలి.
  • చిన్న రన్‌టైమ్‌ను సృష్టించడానికి మాడ్యూళ్ళను కలపడం, ఇది చిన్న కంప్యూటింగ్ పరికరాలకు సులభంగా స్కేల్ చేయవచ్చు.
  • నమ్మదగినది : తొలగించడం ద్వారా అనువర్తనాలు మరింత నమ్మదగినవి రన్-టైమ్ లోపాలు . ఉదాహరణ:- తరగతులు తప్పిపోయిన కారణంగా రన్-టైమ్‌లో మీ అప్లికేషన్ విఫలమైందని మీరు అనుభవించి ఉండాలి క్లాస్‌నోట్‌ఫౌండ్ఎక్సెప్షన్ .

వివిధ ఉన్నాయి జెఇపిలు , ఈ ప్రాజెక్టులో భాగమైన ఇవి క్రింది విధంగా ఉన్నాయి:

  • JEP 200 - మాడ్యులర్ JDK : ఇది JDK ని మాడ్యూలైజ్ చేయడానికి జావా ప్లాట్‌ఫాం మాడ్యూల్ సిస్టమ్‌ను వర్తిస్తుంది, వీటిని కంపైల్ సమయంలో, బిల్డ్ టైమ్ లేదా రన్‌టైమ్‌లో కలపవచ్చు.
  • JEP 201 - మాడ్యులర్ సోర్స్ కోడ్ : ఇది JDK సోర్స్ కోడ్‌ను మాడ్యూల్స్‌గా మాడ్యులైజ్ చేస్తుంది మరియు మాడ్యూళ్ళను కంపైల్ చేయడానికి బిల్డ్ టూల్స్‌ను మెరుగుపరుస్తుంది.
  • JEP 220 - మాడ్యులర్ రన్‌టైమ్ చిత్రాలు : ఇది మాడ్యూళ్ళకు అనుగుణంగా మరియు పనితీరు, భద్రత మరియు నిర్వహణ సామర్థ్యాన్ని మెరుగుపరచడానికి JDK మరియు JRE రన్‌టైమ్ చిత్రాలను పునర్నిర్మించింది.
  • JEP 260 - చాలా అంతర్గత API లను కలుపుతుంది : ఇది చాలా అంతర్గత API లను ప్రత్యక్షంగా లేదా ప్రతిబింబం ద్వారా యాక్సెస్ చేయడానికి అనుమతిస్తుంది. మార్చడానికి కట్టుబడి ఉన్న అంతర్గత API లను యాక్సెస్ చేయడం చాలా ప్రమాదకరం. దాని ఉపయోగాన్ని నిరోధించడానికి, అవి మాడ్యూళ్ళలో జతచేయబడుతున్నాయి మరియు సరైన API దాని స్థానంలో ఉండే వరకు విస్తృతంగా ఉపయోగించబడుతున్న అంతర్గత API లు మాత్రమే అందుబాటులో ఉంచబడుతున్నాయి.
  • JEP 261 - మాడ్యూల్ సిస్టమ్ : ఇది జావా ప్రోగ్రామింగ్ లాంగ్వేజ్, జెవిఎం మరియు ఇతర ప్రామాణిక API లను మార్చడం ద్వారా మాడ్యూల్ సిస్టమ్ జావా స్పెసిఫికేషన్‌ను అమలు చేస్తుంది
  • JEP 282: jlink, జావా లింకర్ : ఇది ప్యాకేజింగ్ మాడ్యూళ్ళను మరియు వాటి డిపెండెన్సీలను చిన్న రన్ టైమ్‌లలోకి అనుమతిస్తుంది.

కాబట్టి, ఇదంతా జావా 9 మరియు కొత్త జావా 9 ఫీచర్ల గురించి.

ఇప్పుడు మీరు జావా 9 యొక్క లక్షణాలను అర్థం చేసుకున్నారు, చూడండి ప్రపంచవ్యాప్తంగా విస్తరించి ఉన్న 250,000 మందికి పైగా సంతృప్తికరమైన అభ్యాసకుల నెట్‌వర్క్‌తో విశ్వసనీయ ఆన్‌లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత.

జి మాకు ఒక ప్రశ్న? దయచేసి ఈ “జావా 9” బ్లాగ్ యొక్క వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము వీలైనంత త్వరగా మిమ్మల్ని సంప్రదిస్తాము.