జావా SE 15 విడుదల

ఆరు నెలల అభివృద్ధి తర్వాత, ఒరాకిల్ విడుదల వేదిక జావా SE 15 (జావా ప్లాట్‌ఫారమ్, స్టాండర్డ్ ఎడిషన్ 15), ఓపెన్-సోర్స్ OpenJDK ప్రాజెక్ట్ సూచన అమలుగా ఉపయోగించబడుతుంది. Java SE 15 జావా ప్లాట్‌ఫారమ్ యొక్క మునుపటి విడుదలలతో వెనుకబడిన అనుకూలతను నిర్వహిస్తుంది; కొత్త వెర్షన్ క్రింద ప్రారంభించబడినప్పుడు గతంలో వ్రాసిన అన్ని జావా ప్రాజెక్ట్‌లు మార్పులు లేకుండా పని చేస్తాయి. Java SE 15 బిల్డ్‌లను ఇన్‌స్టాల్ చేయడానికి సిద్ధంగా ఉంది (JDK, JRE మరియు సర్వర్ JRE) సిద్ధం Linux (x86_64), Windows మరియు macOS కోసం. OpenJDK ప్రాజెక్ట్ ద్వారా అభివృద్ధి చేయబడిన సూచన అమలు జావా 15 GPLv2 లైసెన్స్ క్రింద పూర్తిగా ఓపెన్ సోర్స్, GNU క్లాస్‌పాత్ మినహాయింపులతో వాణిజ్య ఉత్పత్తులతో డైనమిక్ లింక్‌ను అనుమతిస్తుంది.

Java SE 15 సాధారణ మద్దతు విడుదలగా వర్గీకరించబడింది మరియు తదుపరి విడుదల వరకు నవీకరణలను అందుకోవడం కొనసాగుతుంది. లాంగ్ టర్మ్ సపోర్ట్ (LTS) బ్రాంచ్ జావా SE 11 అయి ఉండాలి, ఇది 2026 వరకు అప్‌డేట్‌లను అందుకోవడం కొనసాగుతుంది. Java 8 యొక్క మునుపటి LTS శాఖకు డిసెంబర్ 2020 వరకు మద్దతు ఉంటుంది. తదుపరి LTS విడుదల సెప్టెంబర్ 2021కి షెడ్యూల్ చేయబడింది. జావా 10 విడుదలతో ప్రారంభించి, ప్రాజెక్ట్ కొత్త అభివృద్ధి ప్రక్రియకు మారిందని, కొత్త విడుదలల ఏర్పాటుకు తక్కువ చక్రాన్ని సూచిస్తుందని మేము మీకు గుర్తు చేద్దాం. కొత్త కార్యాచరణ ఇప్పుడు నిరంతరం నవీకరించబడిన ఒక మాస్టర్ బ్రాంచ్‌లో అభివృద్ధి చేయబడింది, ఇందులో రెడీమేడ్ మార్పులు ఉంటాయి మరియు కొత్త విడుదలలను స్థిరీకరించడానికి ప్రతి ఆరు నెలలకు బ్రాంచ్‌లు ఉంటాయి.

నుండి ఆవిష్కరణలు జావా 15 చెయ్యవచ్చు మార్క్:

  • అంతర్నిర్మిత EdDSA (ఎడ్వర్డ్స్-కర్వ్ డిజిటల్ సిగ్నేచర్ అల్గోరిథం) డిజిటల్ సిగ్నేచర్ క్రియేషన్ అల్గారిథమ్‌కు మద్దతు RFC 8032) ప్రతిపాదిత EdDSA అమలు హార్డ్‌వేర్ ప్లాట్‌ఫారమ్‌లపై ఆధారపడదు, సైడ్-ఛానల్ దాడుల నుండి రక్షించబడింది (అన్ని గణనల యొక్క స్థిరమైన సమయం నిర్ధారించబడుతుంది) మరియు అదే స్థాయి రక్షణతో C భాషలో వ్రాయబడిన ECDSA అమలు కంటే పనితీరులో వేగవంతమైనది. ఉదాహరణకు, EdDSA 126-బిట్ కీతో ఎలిప్టిక్ కర్వ్‌ని ఉపయోగించి ECDSAకి సమానమైన పనితీరును secp256r1 ఎలిప్టిక్ కర్వ్ మరియు 128-బిట్ కీతో ప్రదర్శిస్తుంది.
  • చేర్చబడింది సీల్డ్ క్లాస్‌లు మరియు ఇంటర్‌ఫేస్‌లకు ప్రయోగాత్మక మద్దతు, దీనిని ఇతర తరగతులు మరియు ఇంటర్‌ఫేస్‌లు వారసత్వంగా పొందడం, పొడిగించడం లేదా అమలును భర్తీ చేయడం సాధ్యం కాదు. పొడిగింపు కోసం అనుమతించబడిన సబ్‌క్లాస్‌లను స్పష్టంగా జాబితా చేయడం ఆధారంగా, యాక్సెస్ మాడిఫైయర్‌ల కంటే సూపర్‌క్లాస్ వినియోగాన్ని పరిమితం చేయడానికి సీల్డ్ క్లాస్‌లు మరింత డిక్లరేటివ్ మార్గాన్ని అందిస్తాయి.

    ప్యాకేజీ com.example.geometry;

    పబ్లిక్ సీల్డ్ క్లాస్ షేప్
    అనుమతులు com.example.polar.Circle,
    com.example.quad.Rectangle,
    com.example.quad.simple.స్క్వేర్ {…}

  • చేర్చబడింది ఇతర తరగతుల బైట్‌కోడ్ ద్వారా నేరుగా ఉపయోగించలేని దాచిన తరగతులకు మద్దతు. రన్‌టైమ్‌లో తరగతులను డైనమిక్‌గా రూపొందించే ఫ్రేమ్‌వర్క్‌లలో ఉపయోగించడం మరియు వాటిని పరోక్షంగా ఉపయోగించడం అనేది దాచిన తరగతుల ముఖ్య ఉద్దేశ్యం. ప్రతిబింబం. ఇటువంటి తరగతులు సాధారణంగా పరిమిత జీవిత చక్రాన్ని కలిగి ఉంటాయి, కాబట్టి స్థిరంగా రూపొందించబడిన తరగతుల నుండి యాక్సెస్ కోసం వాటిని నిర్వహించడం సమర్థించబడదు మరియు మెమరీ వినియోగం పెరగడానికి మాత్రమే దారి తీస్తుంది. దాచిన తరగతులు కూడా ప్రామాణికం కాని API sun.misc.Unsafe::defineAnonymousClass అవసరాన్ని తొలగిస్తాయి, ఇది భవిష్యత్తులో తీసివేయబడుతుంది.
  • ZGC (Z గార్బేజ్ కలెక్టర్) చెత్త కలెక్టర్ స్థిరీకరించబడింది మరియు విస్తృత ఉపయోగం కోసం సిద్ధంగా ఉన్నట్లు గుర్తించబడింది. ZGC నిష్క్రియ మోడ్‌లో పని చేస్తుంది, చెత్త సేకరణ కారణంగా జాప్యాన్ని వీలైనంత వరకు తగ్గిస్తుంది (ZGCని ఉపయోగించినప్పుడు స్టాల్ సమయం 10 ms కంటే ఎక్కువ ఉండదు.) మరియు అనేక వందల మెగాబైట్ల నుండి అనేక టెరాబైట్ల వరకు పరిమాణంలో చిన్న మరియు భారీ కుప్పలతో పని చేయవచ్చు.
  • స్థిరీకరించబడింది మరియు సాధారణ ఉపయోగం కోసం సిద్ధంగా ఉన్నట్లు కనుగొనబడింది
    వ్యర్థాలు సేకరించువాడు Shenandoah, కనీస పాజ్‌లతో పని చేయడం (తక్కువ-పాజ్-టైమ్ గార్బేజ్ కలెక్టర్). Shenandoah Red Hat చే అభివృద్ధి చేయబడింది మరియు జావా అప్లికేషన్‌ల అమలుకు సమాంతరంగా క్లీనప్‌ని అమలు చేయడం ద్వారా చెత్త సేకరణ సమయంలో స్టాల్ సమయాన్ని తగ్గించే అల్గారిథమ్‌ని ఉపయోగించడం ద్వారా ఇది గుర్తించదగినది. చెత్త సేకరణకర్త ప్రవేశపెట్టిన ఆలస్యాల పరిమాణం ఊహించదగినది మరియు కుప్ప పరిమాణంపై ఆధారపడి ఉండదు, అనగా. 200 MB మరియు 200 GB కుప్పల కోసం ఆలస్యం ఒకేలా ఉంటుంది (బయటకు రావద్దు 50 ms దాటి మరియు సాధారణంగా 10 ms లోపల);

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

    ఉదాహరణకు, కోడ్‌కు బదులుగా

    స్ట్రింగ్ html = " » +
    "\n\t" + " » +
    "\n\t\t" + " \"Java 1 ఇక్కడ ఉంది!\" » +
    "\n\t" + " » +
    "\n" + " ";

    మీరు పేర్కొనవచ్చు:

    స్ట్రింగ్ html = """


    »జావా 1\
    ఇక్కడ!

    """;

  • రీడిజైన్ చేయబడింది లెగసీ డేటాగ్రామ్‌సాకెట్ API. java.net.DatagramSocket మరియు java.net.MulticastSocket యొక్క పాత ఇంప్లిమెంటేషన్‌లు డీబగ్ చేయడానికి మరియు నిర్వహించడానికి సులభమైన ఆధునిక అమలుతో భర్తీ చేయబడ్డాయి మరియు ప్రాజెక్ట్‌లో అభివృద్ధి చేయబడిన వర్చువల్ స్ట్రీమ్‌లకు కూడా అనుకూలంగా ఉంటాయి. మగ్గం. ఇప్పటికే ఉన్న కోడ్‌తో అనుకూలత లేనట్లయితే, పాత అమలు తీసివేయబడలేదు మరియు jdk.net.usePlainDatagramSocketImpl ఎంపికను ఉపయోగించి ప్రారంభించవచ్చు.
  • రెండవ ప్రయోగాత్మక అమలు ప్రతిపాదించబడింది నమూనా సరిపోలిక "instanceof" ఆపరేటర్‌లో, తనిఖీ చేయబడిన విలువను యాక్సెస్ చేయడానికి స్థానిక వేరియబుల్‌ను వెంటనే నిర్వచించడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, మీరు వెంటనే “if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}” అని స్పష్టంగా “String s = (String) obj” అని నిర్వచించకుండా వ్రాయవచ్చు.

    ఉంది:

    అయితే (సమూహం యొక్క వస్తువు) {
    సమూహం సమూహం = (సమూహం)obj;
    var ఎంట్రీలు = group.getEntries();
    }

    ఇప్పుడు మీరు "గ్రూప్ గ్రూప్ = (గ్రూప్) obj" నిర్వచనం లేకుండా చేయవచ్చు:

    అయితే (సమూహ సమూహం యొక్క obj ఉదాహరణ) {
    var ఎంట్రీలు = group.getEntries();
    }

  • సూచించారు కీవర్డ్ యొక్క రెండవ ప్రయోగాత్మక అమలు "రికార్డు", ఇది తరగతులను నిర్వచించడానికి ఒక కాంపాక్ట్ ఫారమ్‌ను అందిస్తుంది, ప్రవర్తన మారని ఫీల్డ్‌లలో మాత్రమే డేటా నిల్వ చేయబడిన సందర్భాలలో సమానం(), hashCode() మరియు toString() వంటి వివిధ తక్కువ-స్థాయి పద్ధతులను స్పష్టంగా నిర్వచించకుండా మిమ్మల్ని అనుమతిస్తుంది. ఈక్వల్స్(), హాష్‌కోడ్() మరియు టోస్ట్రింగ్() పద్ధతుల యొక్క ప్రామాణిక అమలులను తరగతి ఉపయోగించినప్పుడు, అది వాటి స్పష్టమైన నిర్వచనం లేకుండా చేయగలదు:

    పబ్లిక్ రికార్డ్ బ్యాంక్ లావాదేవీ (స్థానిక తేదీ తేదీ,
    రెట్టింపు మొత్తం
    స్ట్రింగ్ వివరణ) {}

    ఈ డిక్లరేషన్ స్వయంచాలకంగా ఈక్వల్స్(), హ్యాష్‌కోడ్() మరియు టోస్ట్రింగ్() పద్ధతులను కన్స్ట్రక్టర్ మరియు గెటర్ పద్ధతులకు అదనంగా జోడిస్తుంది.

  • ప్రతిపాదించారు ఫారిన్-మెమొరీ యాక్సెస్ API యొక్క రెండవ ప్రివ్యూ, కొత్త MemorySegment, MemoryAddress మరియు MemoryLayout అబ్‌స్ట్రాక్షన్‌లను మార్చడం ద్వారా జావా హీప్ వెలుపల మెమరీ ప్రాంతాలను సురక్షితంగా మరియు సమర్ధవంతంగా యాక్సెస్ చేయడానికి జావా అప్లికేషన్‌లను అనుమతిస్తుంది.
  • వికలాంగుడు మరియు లాకింగ్ ఓవర్‌హెడ్‌ను తగ్గించడానికి హాట్‌స్పాట్ JVMలో ఉపయోగించిన బయాస్డ్ లాకింగ్ ఆప్టిమైజేషన్ టెక్నిక్ నిలిపివేయబడింది. ఈ సాంకేతికత ఆధునిక CPUల ద్వారా అందించబడిన పరమాణు సూచనలతో సిస్టమ్‌లపై దాని ఔచిత్యాన్ని కోల్పోయింది మరియు దాని సంక్లిష్టత కారణంగా నిర్వహించడానికి చాలా శ్రమతో కూడుకున్నది.
  • ప్రకటించారు కాలం చెల్లిన యంత్రాంగం RMI యాక్టివేషన్, ఇది భవిష్యత్ విడుదలలో తీసివేయబడుతుంది. RMI యాక్టివేషన్ పాతది, జావా 8లో ఎంపిక యొక్క వర్గానికి పంపబడింది మరియు ఆధునిక ఆచరణలో దాదాపుగా ఉపయోగించబడదు.
  • తొలగించబడింది జావాస్క్రిప్ట్ ఇంజిన్ ఖడ్గమృగం, ఇది జావా SE 11లో నిలిపివేయబడింది.
  • తీసివేయబడింది Solaris OS మరియు SPARC ప్రాసెసర్‌ల కోసం పోర్ట్‌లు (Solaris/SPARC, Solaris/x64 మరియు Linux/SPARC). ఈ పోర్ట్‌లను తీసివేయడం వలన కమ్యూనిటీ సోలారిస్- మరియు SPARC-నిర్దిష్ట ఫీచర్‌లను నిర్వహించడానికి సమయాన్ని వృథా చేయకుండా కొత్త OpenJDK ఫీచర్‌ల అభివృద్ధిని వేగవంతం చేయడానికి అనుమతిస్తుంది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి