جاوا SE 20 ریلیز

چھ ماہ کی ترقی کے بعد، اوریکل نے جاوا SE 20 (جاوا پلیٹ فارم، سٹینڈرڈ ایڈیشن 20) جاری کیا، جو اوپن سورس اوپن جے ڈی کے پروجیکٹ کو حوالہ کے نفاذ کے طور پر استعمال کرتا ہے۔ کچھ متروک خصوصیات کو ہٹانے کے استثنا کے ساتھ، Java SE 20 جاوا پلیٹ فارم کی پچھلی ریلیز کے ساتھ پسماندہ مطابقت برقرار رکھتا ہے - زیادہ تر پہلے لکھے جاوا پروجیکٹ نئے ورژن کے تحت چلنے پر بغیر کسی تبدیلی کے کام کریں گے۔ Java SE 20 (JDK، JRE اور Server JRE) کی انسٹال کرنے کے لیے تیار بلڈز لینکس (x86_64، AArch64)، Windows (x86_64) اور macOS (x86_64، AArch64) کے لیے تیار ہیں۔ OpenJDK پروجیکٹ کے ذریعے تیار کیا گیا، Java 20 ریفرنس کا نفاذ GPLv2 لائسنس کے تحت مکمل طور پر اوپن سورس ہے، جس میں GNU ClassPath استثناء تجارتی مصنوعات کے ساتھ متحرک لنکنگ کی اجازت دیتا ہے۔

Java SE 20 کو باقاعدہ سپورٹ ریلیز کے طور پر درجہ بندی کیا گیا ہے اور اگلی ریلیز تک اپ ڈیٹس موصول ہوتے رہیں گے۔ لانگ ٹرم سپورٹ (LTS) برانچ Java SE 17 ہونی چاہیے، جو 2029 تک اپ ڈیٹس وصول کرتی رہے گی۔ آئیے ہم آپ کو یاد دلاتے ہیں کہ جاوا 10 کی ریلیز کے ساتھ ہی، پروجیکٹ نے ایک نئے ترقیاتی عمل کی طرف رخ کیا، جس کا مطلب نئی ریلیزز کی تشکیل کے لیے ایک چھوٹا سا دور ہے۔ نئی فعالیت اب ایک مسلسل اپ ڈیٹ شدہ ماسٹر برانچ میں تیار کی گئی ہے، جس میں ریڈی میڈ تبدیلیاں شامل ہیں اور جس سے ہر چھ ماہ بعد برانچز کی جاتی ہیں تاکہ نئی ریلیز کو مستحکم کیا جا سکے۔

جاوا 20 میں نئی ​​خصوصیات شامل ہیں:

  • اسکوپڈ ویلیوز کے لیے ابتدائی حمایت موجود ہے، جس سے ناقابل تغیر ڈیٹا کو تھریڈز میں شیئر کیا جا سکتا ہے اور چائلڈ تھریڈز کے درمیان مؤثر طریقے سے ڈیٹا کا تبادلہ کیا جاتا ہے (قدریں وراثت میں ملتی ہیں)۔ اسکوپڈ ویلیوز کو تھریڈ لوکل ویری ایبل میکانزم کو تبدیل کرنے کے لیے تیار کیا جا رہا ہے اور بہت زیادہ تعداد میں ورچوئل تھریڈز (ہزاروں یا لاکھوں تھریڈز) استعمال کرتے وقت زیادہ کارآمد ہیں۔ Scoped Values ​​اور thread-local variables کے درمیان بنیادی فرق یہ ہے کہ سابقہ ​​ایک بار لکھے جاتے ہیں، مستقبل میں تبدیل نہیں کیے جا سکتے، اور صرف تھریڈ کے عمل کی مدت تک دستیاب رہتے ہیں۔ کلاس سرور { حتمی جامد ScopedValue CURRENT_USER = نیا ScopedValue()؛ void سرو (درخواست کی درخواست، جوابی ردعمل) { var سطح = (درخواست. isAuthorized()؟ ایڈمن: GUEST); var صارف = نیا صارف (سطح)؛ ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(درخواست، جواب))؛ } } کلاس ڈیٹا بیس مینجر { DBConnection open() { var user = Server.CURRENT_USER.get(); اگر (!user.canOpen()) نیا InvalidUserException() پھینک دیں؛ نیا ڈی بی کنکشن واپس کریں (...)؛ } }
  • ریکارڈ کی کلاسز کی قدروں کو پارس کرنے کے لیے جاوا 16 میں متعارف کرائے گئے پیٹرن میچنگ فیچر کو بڑھاتے ہوئے، ریکارڈ پیٹرن کا دوسرا پیش نظارہ شامل کیا گیا ہے۔ مثال کے طور پر: ریکارڈ پوائنٹ(int x، int y) {} static void printSum(Object obj) { if (obj instance of Point p) { int x = px(); int y = py(); System.out.println(x+y)؛ } }
  • "سوئچ" بیانات میں پیٹرن کی مماثلت کا چوتھا ابتدائی نفاذ شامل کیا گیا ہے، جس سے "کیس" لیبلز کو درست اقدار کا استعمال کرنے کی اجازت نہیں دی گئی ہے، لیکن لچکدار پیٹرن جو ایک ہی وقت میں اقدار کی ایک سیریز کا احاطہ کرتے ہیں، جس کے لیے پہلے بوجھل استعمال کرنا ضروری تھا۔ "اگر... اور" اظہار کی زنجیریں۔ جامد سٹرنگ فارمیٹر پیٹرن سوئچ (آبجیکٹ آبجیکٹ) { ریٹرن سوئچ (آبجیکٹ) { کیس انٹیجر i -> String.format("int %d", i); کیس Long l -> String.format("long %d", l)؛ کیس Double d -> String.format("double %f", d)؛ کیس String s -> String.format("String %s", s); پہلے سے طے شدہ -> o.toString(); }; }
  • FFM (فارن فنکشن اینڈ میموری) API کا دوسرا ابتدائی نفاذ شامل کیا گیا ہے، جو آپ کو بیرونی لائبریریوں سے کالنگ فنکشنز اور JVM سے باہر میموری تک رسائی کے ذریعے بیرونی کوڈ اور ڈیٹا کے ساتھ جاوا پروگراموں کے تعامل کو منظم کرنے کی اجازت دیتا ہے۔
  • ورچوئل تھریڈز کا دوسرا پیش نظارہ شامل کیا گیا ہے، جو ہلکے وزن والے تھریڈز ہیں جو لکھنے اور اعلیٰ کارکردگی والی ملٹی تھریڈڈ ایپلی کیشنز کو برقرار رکھنے کو بہت آسان بناتے ہیں۔
  • ساختی ہم آہنگی کے لیے ایک دوسرا تجرباتی API شامل کیا گیا، جو ایک ہی بلاک کے طور پر مختلف تھریڈز میں چلنے والے متعدد کاموں کا علاج کر کے ملٹی تھریڈڈ ایپلی کیشنز کی ترقی کو آسان بناتا ہے۔
  • ویکٹر API کا پانچواں پیش نظارہ شامل کیا گیا ہے، جو ویکٹر کیلکولیشن کے لیے فنکشن فراہم کرتا ہے جو x86_64 اور AArch64 پروسیسرز پر ویکٹر ہدایات کا استعمال کرتے ہوئے انجام دیا جاتا ہے اور آپریشنز کو ایک سے زیادہ اقدار (SIMD) پر بیک وقت لاگو کرنے کی اجازت دیتا ہے۔ اسکیلر آپریشنز کے آٹو ویکٹرائزیشن کے لیے HotSpot JIT کمپائلر میں فراہم کردہ صلاحیتوں کے برعکس، نیا API متوازی ڈیٹا پروسیسنگ کے لیے واضح طور پر ویکٹرائزیشن کو کنٹرول کرنا ممکن بناتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں