جاوا SE 18 ریلیز

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

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

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

  • ڈیفالٹ انکوڈنگ UTF-8 ہے۔ جاوا API جو کریکٹر انکوڈنگ کی بنیاد پر ٹیکسٹ ڈیٹا پر کارروائی کرتے ہیں اب سسٹم سیٹنگز اور لوکل سیٹنگز سے قطع نظر تمام پلیٹ فارمز پر ڈیفالٹ کے طور پر UTF-8 استعمال کریں گے۔ پرانے رویے پر واپس جانے کے لیے، جہاں انکوڈنگ کا انتخاب سسٹم لوکیل کی بنیاد پر کیا جاتا ہے، آپ "-Dfile.encoding=COMPAT" آپشن استعمال کر سکتے ہیں۔
  • پیکیج میں com.sun.net.httpserver پیکیج شامل ہے، جس میں جامد مواد کی خدمت کے لیے سادہ HTTP سرور کے نفاذ کے ساتھ jwebserver یوٹیلیٹی اور لائبریری API شامل ہے (CGI اور servlet جیسے ہینڈلرز تعاون یافتہ نہیں ہیں)۔ بلٹ ان HTTP سرور کام کے بوجھ کے لیے بہتر نہیں ہے اور یہ رسائی کنٹرول اور تصدیق کی حمایت نہیں کرتا ہے، کیونکہ اس کا مقصد بنیادی طور پر پروٹو ٹائپنگ، ڈیبگنگ اور ٹیسٹنگ پروجیکٹس کے لیے ترقیاتی عمل میں استعمال کرنا ہے۔
  • JavaDoc کام کرنے والی مثالوں اور کوڈ کے ٹکڑوں کو API دستاویزات میں سرایت کرنے کے لیے "@snippet" ٹیگ کے لیے تعاون فراہم کرتا ہے، جہاں آپ تصدیقی ٹولز، نحو کو نمایاں کرنے، اور IDE انضمام کا استعمال کر سکتے ہیں۔
  • java.lang.reflect API (کور ریفلیکشن) کے نفاذ کو، طریقوں، فیلڈز اور کلاس کنسٹرکٹرز کے بارے میں معلومات حاصل کرنے کے ساتھ ساتھ کلاسز کے اندرونی ڈھانچے تک رسائی کے لیے ڈیزائن کیا گیا ہے، کو دوبارہ ڈیزائن کیا گیا ہے۔ java.lang.reflect API بذات خود کوئی تبدیلی نہیں ہے، لیکن اب اسے بائیک کوڈ جنریٹرز استعمال کرنے کے بجائے java.lang.invoke ماڈیول کے ذریعہ فراہم کردہ طریقہ کار کے استعمال سے لاگو کیا جاتا ہے۔ تبدیلی نے ہمیں java.lang.reflect اور java.lang.invoke کے نفاذ کو یکجا کرنے اور ان کی دیکھ بھال کو آسان بنانے کی اجازت دی۔
  • ویکٹر API کا تیسرا پیش نظارہ تجویز کیا گیا ہے، جو ویکٹر کیلکولیشن کے لیے فنکشن فراہم کرتا ہے جو x86_64 اور AArch64 پروسیسرز پر ویکٹر ہدایات کا استعمال کرتے ہوئے عمل میں لایا جاتا ہے اور آپریشنز کو ایک سے زیادہ اقدار (SIMD) پر بیک وقت لاگو کرنے کی اجازت دیتا ہے۔ اسکیلر آپریشنز کے آٹو ویکٹرائزیشن کے لیے HotSpot JIT کمپائلر میں فراہم کردہ صلاحیتوں کے برعکس، نیا API متوازی ڈیٹا پروسیسنگ کے لیے واضح طور پر ویکٹرائزیشن کو کنٹرول کرنا ممکن بناتا ہے۔
  • میزبان کے ناموں اور IP پتوں کو حل کرنے کے لیے SPI انٹرفیس (سروس فراہم کرنے والا انٹرفیس) شامل کیا گیا، جو آپ کو java.net.InetAddress میں متبادل حل کرنے والوں کو استعمال کرنے کی اجازت دیتا ہے جو آپریٹنگ سسٹم کے پیش کردہ ہینڈلرز سے منسلک نہیں ہیں۔
  • فارن فنکشن اور میموری API کا دوسرا پیش نظارہ فراہم کیا گیا ہے، جو ایپلیکیشنز کو جاوا رن ٹائم سے باہر کوڈ اور ڈیٹا کے ساتھ تعامل کرنے کی اجازت دیتا ہے۔ نیا API آپ کو غیر JVM فنکشنز کو مؤثر طریقے سے کال کرنے اور غیر JVM کے زیر انتظام میموری تک رسائی کی اجازت دیتا ہے۔ مثال کے طور پر، آپ بیرونی مشترکہ لائبریریوں سے فنکشنز کو کال کر سکتے ہیں اور JNI استعمال کیے بغیر پروسیس ڈیٹا تک رسائی حاصل کر سکتے ہیں۔
  • "سوئچ" ایکسپریشنز میں پیٹرن کی مماثلت کا دوسرا تجرباتی نفاذ شامل کیا گیا ہے، جس سے عین قدروں کے بجائے "کیس" لیبلز میں لچکدار پیٹرن کے استعمال کی اجازت دی گئی ہے، ایک ہی وقت میں اقدار کی ایک سیریز کا احاطہ کرتے ہوئے، جس کے لیے پہلے استعمال کرنا ضروری تھا۔ "اگر... اور" کے تاثرات کی بوجھل زنجیریں۔ اعتراض o = 123L; اسٹرنگ فارمیٹ = سوئچ (o) { کیس انٹیجر 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(); };
  • حتمی شکل دینے کا طریقہ کار اور اس سے منسلک طریقے جیسے Object.finalize(), Enum.finalize(), Runtime.runFinalization() اور System.runFinalization() کو فرسودہ کر دیا گیا ہے اور مستقبل کی ریلیز میں غیر فعال کر دیا جائے گا۔
  • ZGC (Z گاربیج کلیکٹر)، SerialGC، اور ParallelGC کوڑا کرکٹ جمع کرنے والے قطار کی نقل کو سپورٹ کرتے ہیں۔

ماخذ: opennet.ru

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