ఆరు నెలల అభివృద్ధి తర్వాత, ఒరాకిల్ జావా SE 18 (జావా ప్లాట్ఫారమ్, స్టాండర్డ్ ఎడిషన్ 18)ను విడుదల చేసింది, ఇది OpenJDK ఓపెన్ సోర్స్ ప్రాజెక్ట్ను సూచన అమలుగా ఉపయోగిస్తుంది. కొన్ని నిలిపివేయబడిన లక్షణాల తొలగింపు మినహా, Java SE 18 జావా ప్లాట్ఫారమ్ యొక్క మునుపటి విడుదలలతో వెనుకబడిన అనుకూలతను నిర్వహిస్తుంది-చాలా మునుపు వ్రాసిన జావా ప్రాజెక్ట్లు కొత్త వెర్షన్లో నడుస్తున్నప్పుడు మార్పు లేకుండా పని చేస్తాయి. Linux (x18_86, AArch64), Windows (x64_86), మరియు macOS (x64_86, AArch64) కోసం Java SE 64 (JDK, JRE మరియు సర్వర్ JRE) యొక్క ఇన్స్టాల్ చేయగల బిల్డ్లు సిద్ధం చేయబడ్డాయి. OpenJDK ప్రాజెక్ట్ ద్వారా అభివృద్ధి చేయబడింది, వాణిజ్య ఉత్పత్తులకు డైనమిక్ లింక్ను అనుమతించడానికి GNU క్లాస్పాత్ మినహాయింపులతో GPLv18 లైసెన్స్ క్రింద Java 2 సూచన అమలు పూర్తిగా తెరవబడింది.
Java SE 18 సాధారణ మద్దతు విడుదలగా వర్గీకరించబడింది మరియు తదుపరి విడుదల వరకు నవీకరణలను అందుకోవడం కొనసాగుతుంది. లాంగ్ టర్మ్ సపోర్ట్ (LTS) బ్రాంచ్ జావా SE 17 అయి ఉండాలి, ఇది 2029 వరకు అప్డేట్లను అందుకోవడం కొనసాగుతుంది. జావా 10 విడుదలతో ప్రారంభించి, ప్రాజెక్ట్ కొత్త అభివృద్ధి ప్రక్రియకు మారిందని, కొత్త విడుదలల ఏర్పాటుకు తక్కువ చక్రాన్ని సూచిస్తుందని మేము మీకు గుర్తు చేద్దాం. కొత్త కార్యాచరణ ఇప్పుడు నిరంతరం నవీకరించబడిన ఒక మాస్టర్ బ్రాంచ్లో అభివృద్ధి చేయబడింది, ఇందులో రెడీమేడ్ మార్పులు ఉంటాయి మరియు కొత్త విడుదలలను స్థిరీకరించడానికి ప్రతి ఆరు నెలలకు బ్రాంచ్లు ఉంటాయి.
జావా 18లో కొత్త ఫీచర్లు ఉన్నాయి:
- డిఫాల్ట్ ఎన్కోడింగ్ UTF-8. క్యారెక్టర్ ఎన్కోడింగ్ ఆధారంగా టెక్స్ట్ డేటాను ప్రాసెస్ చేసే Java APIలు ఇప్పుడు సిస్టమ్ సెట్టింగ్లు మరియు లొకేల్ సెట్టింగ్లతో సంబంధం లేకుండా అన్ని ప్లాట్ఫారమ్లలో UTF-8ని డిఫాల్ట్గా ఉపయోగిస్తాయి. సిస్టమ్ లొకేల్ ఆధారంగా ఎన్కోడింగ్ ఎంపిక చేయబడిన పాత ప్రవర్తనకు తిరిగి రావడానికి, మీరు "-Dfile.encoding=COMPAT" ఎంపికను ఉపయోగించవచ్చు.
- ప్యాకేజీ com.sun.net.http సర్వర్ ప్యాకేజీని కలిగి ఉంటుంది, ఇది jwebserver యుటిలిటీ మరియు లైబ్రరీ APIని కలిగి ఉంటుంది, ఇది స్టాటిక్ కంటెంట్ను అందించడం కోసం ఒక సాధారణ http సర్వర్ని అమలు చేస్తుంది (CGI మరియు సర్వ్లెట్ లాంటి హ్యాండ్లర్లకు మద్దతు లేదు). అంతర్నిర్మిత HTTP సర్వర్ వర్క్లోడ్ల కోసం ఆప్టిమైజ్ చేయబడలేదు మరియు యాక్సెస్ నియంత్రణ మరియు ప్రామాణీకరణకు మద్దతు ఇవ్వదు, ఎందుకంటే ఇది ప్రాథమికంగా ప్రోటోటైపింగ్, డీబగ్గింగ్ మరియు టెస్టింగ్ ప్రాజెక్ట్ల కోసం డెవలప్మెంట్ ప్రాసెస్లో ఉపయోగించడం లక్ష్యంగా పెట్టుకుంది.
- పని చేసే ఉదాహరణలు మరియు కోడ్ స్నిప్పెట్లను API డాక్యుమెంటేషన్లో పొందుపరచడానికి JavaDoc "@స్నిప్పెట్" ట్యాగ్కు మద్దతునిస్తుంది, ఇక్కడ మీరు ధ్రువీకరణ సాధనాలు, సింటాక్స్ హైలైటింగ్ మరియు IDE ఇంటిగ్రేషన్ను ఉపయోగించవచ్చు.
- java.lang.reflect API (కోర్ రిఫ్లెక్షన్) అమలు, పద్ధతులు, ఫీల్డ్లు మరియు క్లాస్ కన్స్ట్రక్టర్ల గురించి సమాచారాన్ని పొందేందుకు అలాగే తరగతుల అంతర్గత నిర్మాణాన్ని యాక్సెస్ చేయడానికి రూపొందించబడింది. java.lang.reflect API కూడా మారదు, కానీ ఇప్పుడు బైట్కోడ్ జనరేటర్లను ఉపయోగించకుండా java.lang.invoke మాడ్యూల్ అందించిన మెథడ్ హ్యాండిల్స్ని ఉపయోగించి అమలు చేయబడింది. మార్పు java.lang.reflect మరియు java.lang.invoke యొక్క అమలులను ఏకీకృతం చేయడానికి మరియు వాటి నిర్వహణను సులభతరం చేయడానికి మాకు అనుమతినిచ్చింది.
- వెక్టర్ API యొక్క మూడవ పరిదృశ్యం ప్రతిపాదించబడింది, x86_64 మరియు AArch64 ప్రాసెసర్లపై వెక్టార్ సూచనలను ఉపయోగించి అమలు చేయబడిన వెక్టార్ లెక్కల కోసం ఫంక్షన్లను అందిస్తుంది మరియు బహుళ విలువలకు (SIMD) ఏకకాలంలో ఆపరేషన్లను వర్తింపజేయడానికి అనుమతిస్తుంది. స్కేలార్ కార్యకలాపాల యొక్క ఆటో-వెక్టరైజేషన్ కోసం హాట్స్పాట్ JIT కంపైలర్లో అందించబడిన సామర్థ్యాల వలె కాకుండా, కొత్త API సమాంతర డేటా ప్రాసెసింగ్ కోసం వెక్టరైజేషన్ను స్పష్టంగా నియంత్రించడాన్ని సాధ్యం చేస్తుంది.
- హోస్ట్ పేర్లు మరియు IP చిరునామాలను పరిష్కరించడం కోసం SPI ఇంటర్ఫేస్ (సర్వీస్ ప్రొవైడర్ ఇంటర్ఫేస్) జోడించబడింది, ఇది ఆపరేటింగ్ సిస్టమ్ అందించే హ్యాండ్లర్లతో ముడిపడి ఉండని java.net.InetAddressలో ప్రత్యామ్నాయ పరిష్కారాలను ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది.
- ఫారిన్ ఫంక్షన్ & మెమరీ API యొక్క రెండవ ప్రివ్యూ అందించబడింది, జావా రన్టైమ్ వెలుపల కోడ్ మరియు డేటాతో పరస్పర చర్య చేయడానికి అప్లికేషన్లను అనుమతిస్తుంది. కొత్త API మిమ్మల్ని JVM కాని ఫంక్షన్లకు సమర్థవంతంగా కాల్ చేయడానికి మరియు JVM-నిర్వహించని మెమరీని యాక్సెస్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, మీరు JNIని ఉపయోగించకుండానే బాహ్య భాగస్వామ్య లైబ్రరీల నుండి ఫంక్షన్లకు కాల్ చేయవచ్చు మరియు ప్రాసెస్ డేటాను యాక్సెస్ చేయవచ్చు.
- "స్విచ్" వ్యక్తీకరణలలో నమూనా సరిపోలిక యొక్క రెండవ ప్రయోగాత్మక అమలు జోడించబడింది, ఖచ్చితమైన విలువల కంటే "కేస్" లేబుల్లలో అనువైన నమూనాలను ఉపయోగించడాన్ని అనుమతిస్తుంది, ఒకేసారి విలువల శ్రేణిని కవర్ చేస్తుంది, దీని కోసం గతంలో ఉపయోగించాల్సిన అవసరం ఉంది. గజిబిజి గొలుసుల "ఇఫ్...లేస్" వ్యక్తీకరణలు. ఆబ్జెక్ట్ o = 123L; స్ట్రింగ్ ఫార్మాట్ చేయబడింది = స్విచ్ (o) {కేస్ పూర్ణాంకం i -> String.format("int %d", i); కేస్ లాంగ్ l -> String.format("పొడవైన %d", l); కేసు డబుల్ d -> String.format("డబుల్ %f", d); కేస్ స్ట్రింగ్ s -> String.format("String %s", s); డిఫాల్ట్ -> o.toString(); };
- ఫైనలైజేషన్ మెకానిజం మరియు దాని అనుబంధ పద్ధతులైన Object.finalize(), Enum.finalize(), Runtime.runFinalization() మరియు System.runFinalization() విస్మరించబడ్డాయి మరియు భవిష్యత్ విడుదలలో నిలిపివేయబడతాయి.
- ZGC (Z గార్బేజ్ కలెక్టర్), SerialGC మరియు ParallelGC చెత్త కలెక్టర్లు వరుస తగ్గింపుకు మద్దతు ఇస్తాయి.
మూలం: opennet.ru