جاوا 9 اور جاوا 9 خصوصیات کا اجراء جاوا ماحولیاتی نظام کے لئے سنگ میل ہے۔نئی ریلیز کے ساتھ جاری رکھنا ضروری ہے کہ جدید ترین ٹیکنالوجی کے ساتھ رہیں اور جو کچھ متعارف کرایا جاتا ہے اس کی ضرورت کو سمجھنے کے ل you آپ کے قریب تر ہوجائیں گے .پروجیکٹ Jigsaw کے تحت تیار کردہ ماڈیولر فریم ورک اس جاوا ایس ای کی رہائی کا حصہ ہوگا اور اس میں اہم خصوصیات JShell (REPL کا آلہ) ، JVM کی کارکردگی اور ڈیباکٹی کو بہتر بنانے کے لئے اہم API میں تبدیلیاں اور JVM- سطح کی تبدیلیاں ہیں۔
اس سے پہلے کہ ہم جاوا 9 کی خصوصیات کو تفصیل سے کھولیں ، آئیے ہم جاوا کے پچھلے ورژن پر ایک نظر ڈالیں اور دیکھیں کہ کیا خرابیاں تھیں اور جاوا 9 نے ان عدم تضادات پر قابو پانے میں کس طرح مدد فراہم کی۔
- جاوا اسٹینڈرڈ ایڈیشن پلیٹ فارم اور جے ڈی کے چھوٹے کمپیوٹنگ آلات کے لئے قابل چلنے نہیں تھے
- جے ڈی کے کی کوئی سکیورٹی اور بحالی نہیں تھی
- درخواست کی کارکردگی میں مجموعی طور پر کوئی بہتری نہیں ہوئی
- جاوا ڈویلپرز کے لئے جاوا ایس ای اور ای ای پلیٹ فارم دونوں کے لئے کوڈ لائبریریوں اور بڑے ایپلی کیشنز کی تعمیر اور اسے برقرار رکھنا مشکل تھا۔
اس بلاگ پوسٹ میں میں جاوا 9 خصوصیات کو درج ذیل میں درجہ بندی کروں گا:
- جاوا 9 میں API اپ ڈیٹس پر کارروائی کریں
- جاوا 9 میں HTTP / 2 کلائنٹ
- جاوا 9 میں جاوا شیل اسکرپٹنگ (پڑھیں۔یول-پرنٹ-لوپ)
- جاوا 9 میں ملٹی ریلیز جار فائلوں کی خصوصیت
- جاوا 9 میں مزید ہم آہنگی کی تازہ کاریوں کی خصوصیت
- جاوا 9 میں پروجیکٹ Jigsaw
جاوا 9 میں نیا کیا ہے؟
میں نے جاوا 9 میں سے کچھ نئی خصوصیات منتخب کیں ، جن کے بارے میں مجھے جاننے کے قابل ہے۔ آئیے دیکھتے ہیں کہ یہ خصوصیات کیا ہیں: -
جاوا 9 میں API اپ ڈیٹس پر کارروائی کریں
جاوا کا پروسس API کافی قدیم رہا ،حمایت کے ساتھ صرف نئے عمل شروع کرنے کے لئے، عمل کی آؤٹ پٹ اور غلطی کے سلسلے کو ری ڈائریکٹ کریں۔ اس ریلیز میں ، عمل API میں اپ ڈیٹس درج ذیل کو اہل بناتی ہیں۔
- JVM کے ذریعہ موجودہ JVM عمل اور کسی بھی دوسرے عمل کی PID حاصل کرنا
- PID ، نام ، اور وسائل کے استعمال جیسی معلومات حاصل کرنے کے لئے سسٹم میں چلنے والے عملوں کا حساب کتاب کریں
- عمل درختوں کا انتظام
- ذیلی کارروائیوں کا انتظام کرنا
آئیے ایک نمونہ کوڈ دیکھیں ، جو موجودہ PID کے ساتھ ساتھ موجودہ عمل کی معلومات پرنٹ کرتا ہے۔
پبلک کلاس نیو فیچرز {عوامی جامد باطل مین (سٹرنگ [] آرگس) {پروسس ہینڈل کرنٹپروسیس = پروسیس ہینڈل کوورینٹ () سسٹم آؤٹ.پرینٹلن ('پی آئی ڈی:' + موجودہپروسیسٹیٹ پیڈ ()) پراسیس ہینڈل۔ انفو فی الحال پروسیس انسٹو = کرنٹ پروسنس انڈو () سسٹم.اٹ.پرنٹلن ('انفارمیشن:' + موجودہپروسیس انفو)}
جاوا 9 میں HTTP / 2 کلائنٹ
توقع کی جا رہی ہے کہ اس جاوا 9 کے بعد کی ریلیز میں بھی تبدیلی آسکتی ہے اور یہاں تک کہ اسے مکمل طور پر ختم کردیا جاسکتا ہے۔
پہلے ڈویلپر اکثر تیسری پارٹی کے لائبریریوں ، جیسے اپاچی ایچ ٹی ٹی پی ، جرسی وغیرہ کو استعمال کرتے ہیں۔ اس کے علاوہ ، جاوا کا HTTP API HTTP / 1.1 تفصیلات کی پیش گوئی کرتا ہے اور ہم آہنگی اور برقرار رکھنا مشکل ہے۔ ان حدود میں ایک نیا API شامل کرنے کی ضرورت پر زور دیا گیا۔ نیا HTTP مؤکل API درج ذیل فراہم کرتا ہے:
- زیادہ تر HTTP درخواستوں سے نمٹنے کے لئے ایک آسان اور جامع API
- HTTP / 2 تصریح کے لئے معاونت
- بہتر کارکردگی
- بہتر سیکیورٹی
- کچھ اور اضافہ
آئیے ایک نئے نمونوں کا استعمال کرتے ہوئے HTTP GET درخواست کرنے کیلئے نمونہ کوڈ دیکھتے ہیں۔ ذیل میں فائل ماڈیول- انفو.جاوا میں تعریف کی گئی ماڈیول تعریف ہے۔
ماڈیول newfeatures {jdk.incubator.httpclient کی ضرورت ہے}
مندرجہ ذیل کوڈ HTTP کلائنٹ API کا استعمال کرتا ہے ، جو jdk.incubator.httpclient ماڈیول کا حصہ ہے۔
درآمد jdk.incubator.htp. نیا یو آر آئی (http://httpbin.org/get)) .GET () .version (HttpClient.Version.HTTP_1_1). بلڈ () HttpResponse.String جواب = مؤکل.سینڈ (درخواست ، HttpResponse.BodyHandler.asstring ()) سسٹم آؤٹ.پریٹلن ('اسٹیٹس کوڈ:' + ردعمل۔ اسٹاٹ کوڈ ())
System.out.println ('رسپانس باڈی:' + ਜਵਾਬ.body ())}}
جاوا 9 میں جاوا شیل اسکرپٹنگ (پڑھیں۔یول-پرنٹ-لوپ)
آپ نے زبانیں دیکھی ہوں گی ، جیسے روبی ، سکالا ، گرووی ، کلوجور ، اور دیگر افراد کو کسی آلے کے ذریعہ شپنگ ، جسے اکثر کہا جاتا ہے REPL ( پڑھیں-ایول-پرنٹ-لوپ ). یہ REPL ٹول زبان کی خصوصیات کو آزمانے میں انتہائی مفید ہے۔ مثال کے طور پر ، اسکیلہ میں ، ہم ایک ہیلو ورلڈ پروگرام بطور لکھ سکتے ہیں اسکالا> پرنٹلن ('ہیلو ورلڈ')
کے کچھ فوائد JShell REPL مندرجہ ذیل ہیں:
c ++ اور جاوا کے مابین فرق
- تجربہ کار ڈویلپرز اس کو اپنا مرکزی کوڈ بیس میں اپنانے سے پہلے پروٹو ٹائپ اور تجربہ کرسکتے ہیں
- جاوا ڈویلپرز اب ایک REPL کی فخر کرسکتے ہیں
آئیے ، JShell کمانڈ چلائیں ، جیسا کہ مندرجہ ذیل تصویر میں دکھایا گیا ہے:
جاوا 9 میں ملٹی ریلیز جار فائلوں کی خصوصیت
ابھی تک ، JAR فائلوں میں کلاس شامل ہوسکتی ہیں جو صرف جاوا ورژن پر چل سکتی ہیں جس کے لئے انہوں نے مرتب کیا تھا۔ جاوا پلیٹ فارم کی نئی خصوصیات کو نئے ورژن پر فائدہ اٹھانے کے لئے ، لائبریری کے ڈویلپرز کو اپنی لائبریری کا نیا ورژن جاری کرنا ہوگا۔ جلد ہی ، لائبریری کے متعدد نسخے ڈویلپرز کے ذریعہ برقرار رکھے جائیں گے ، جو ایک ڈراؤنا خواب ہوسکتے ہیں۔ اس حد پر قابو پانے کے ل multi ، جاوا 9 ملٹی ریلیز جے اے آر فائلوں کی یہ خصوصیات ڈویلپرز کو جاوا کے مختلف ورژنوں کے لئے کلاس فائلوں کے مختلف ورژن کے ساتھ جار فائلوں کو بنانے کی اجازت دیتی ہیں۔مندرجہ ذیل مثال سے یہ زیادہ واضح ہوتا ہے۔
موجودہ JAR فائلوں کی ایک مثال یہ ہے۔
جار کی جڑ - ایک معیار - B.class - سی ۔کلاس
ملٹی ریلیز JAR فائلوں کو کس طرح دکھتا ہے یہ یہاں ہے:
جار کی جڑ - ایک معیار - B.class - سی ۔کلاس - میٹا INF - ورژن 9 - ایک معیار - 10 - B.class
سابقہ مثال میں ، JAR فائلیں جاوا کے دو ورژن – 9 اور 10 کے لئے کلاس فائلوں کی حمایت کرتی ہیں۔
لہذا ، جب جاوا 9 پر پہلے کے JAR کو پھانسی دی جاتی ہے تو ، ورژنوں کے تحت A.class - 9 فولڈروں کو پھانسی کے لئے اٹھایا جاتا ہے۔
ایسے پلیٹ فارم پر جو ملٹی ریلیز جار فائلوں کی حمایت نہیں کرتا ہے ، ورزنس ڈائریکٹری کے تحت کلاس کبھی استعمال نہیں کی جاتی ہیں۔ لہذا ، اگر آپ جاوا 8 پر ملٹی ریلیز JAR فائل چلاتے ہیں تو ، یہ اتنا ہی اچھا ہے جتنا کہ سادہ JAR فائل چلائیں۔
جاوا 9 میں مزید ہم آہنگی کی تازہ کاریوں کی خصوصیت
اس تازہ کاری میں ، ایک نئی کلاس ، java.util.concurrent.Flow متعارف کرایا گیا ہے ، جس نے اشاعت سبسکرائب فریم ورک کے نفاذ میں معاون انٹرفیسز فراہم کیے ہیں۔ سبسکرائب سبھی فریم ورک ڈویلپرز کو ایسے اجزاء تیار کرنے کے قابل بناتا ہے جو اعداد و شمار کو تیار کرنے والے ایسے پبلشرز کو ترتیب دے کر اعداد و شمار کے رواں سلسلے کو سنجیدگی سے استعمال کرسکتے ہیں جو سبسکرپشن کے ذریعہ ڈیٹا استعمال کرتے ہیں ، جو ان کا انتظام کرتا ہے۔ چار نئے انٹرفیس حسب ذیل ہیں۔
- java.util.concurrent.Flow.Publisher
- java.util.concurrent.Flow.Subscriber
- java.util.concurrent.Flow.Subscript
- java.util.concurrent.Flow.Processor (جو پبلشر اور سبسکرائبر دونوں کی حیثیت سے کام کرتا ہے)۔
جاوا 9 میں پروجیکٹ Jigsaw
اس منصوبے کا بنیادی مقصد کے تصور کو متعارف کرانا ہے ماڈیولریٹی کی حمایت جاوا 9 میں ماڈیول بنانے کے ل and اور پھر اسی پر عمل کریں جے ڈی کے یہ ہے کہ، جے ڈی کے کو ماڈیولائز کریں .
میں سے کچھ فوائد کے ماڈیولریٹی مندرجہ ذیل ہیں:
- مضبوط encapsulation : ماڈیولز ماڈیول کے ان حصوں تک ہی رسائی حاصل کرسکتے ہیں جو استعمال کے لئے دستیاب کردیئے گئے ہیں۔ لہذا ، کسی پیکیج میں عوامی کلاسز پبلک نہیں ہوتی ہیں جب تک کہ ماڈیول انفارمیشن فائل میں پیکیج کو واضح طور پر ایکسپورٹ نہ کیا جائے۔
- انحصار صاف کریں : ماڈیولز کو یہ اعلان کرنا ہوگا کہ وہ مطلوبہ شق کے ذریعہ کون سے دوسرے ماڈیول استعمال کریں گے۔
- ایک چھوٹا سا رن ٹائم بنانے کے ل mod ماڈیولز کا امتزاج کرنا ، جو آسانی سے چھوٹے کمپیوٹنگ ڈیوائسز تک اسکیل کیا جاسکتا ہے۔
- قابل اعتماد : درخواستیں ختم کرکے زیادہ قابل اعتماد ہیں رن ٹائم غلطیاں . مثال:- کلاس غائب ہونے کی وجہ سے آپ کو رن ٹائم کے دوران اپنی درخواست ناکام ہونے کا تجربہ کرنا ہوگا ClassNotFoundException .
مختلف ہیں JEPs ، جو اس منصوبے کا حصہ ہیں ، مندرجہ ذیل ہیں:
- جی ای پی 200 - ماڈیولر جے ڈی کے : یہ JDK کو ماڈیولز کے ایک سیٹ میں ماڈیولرائز کرنے کے لئے جاوا پلیٹ فارم ماڈیول سسٹم کا اطلاق کرتا ہے جو مرتب وقت ، جوڑ وقت ، یا رن ٹائم کے ساتھ مل سکتا ہے۔
- JEP 201 - ماڈیولر ماخذ کوڈ : یہ JDK ماخذ کوڈ کو ماڈیولز میں تشکیل دیتا ہے اور ماڈیولس کو مرتب کرنے کے لئے بلڈ ٹولز میں اضافہ کرتا ہے۔
- JEP 220 - ماڈیولر رن ٹائم کی تصاویر : یہ ماڈیولوں کو ایڈجسٹ کرنے اور کارکردگی ، حفاظت اور برقرار رکھنے کی صلاحیت کو بہتر بنانے کے لئے جے ڈی کے اور جے آر ای رن ٹائم امیجز کی تنظیم نو کرتی ہے۔
- JEP 260 - بیشتر داخلی APIs کو گھیر لیتے ہیں : اس سے بہت سارے اندرونی APIs تک براہ راست یا عکاسی کے ذریعے رسائی حاصل کی جاسکتی ہے۔ داخلی APIs تک جو رسائی کو تبدیل کرنے کا پابند ہیں ، تک رسائ کرنا کافی خطرہ ہے۔ اس کے استعمال کو روکنے کے ل they ، انہیں ماڈیولز میں گھیر لیا جارہا ہے اور صرف وہی داخلی APIs دستیاب ہیں جب تک کہ مناسب API اس کی جگہ پر نہ آجائے۔
- جیپ 261 - ماڈیول سسٹم : یہ جاوا پروگرامنگ زبان ، JVM ، اور دیگر معیاری APIs کو تبدیل کرکے ماڈیول سسٹم جاوا کی تصریح کو نافذ کرتا ہے
- JEP 282: jlink ، جاوا لنکر : اس سے پیکیجنگ ماڈیولز اور ان کا انحصار چھوٹا وقت میں پڑتا ہے۔
تو ، یہ سب جاوا 9 اور جاوا 9 کی نئی خصوصیات کے بارے میں تھا۔
اب جب آپ جاوا 9 کی خصوصیات کو سمجھ گئے ہیں ، تو چیک کریں ایڈوریکا کے ذریعہ ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی جس کی دنیا بھر میں 250،000 سے زیادہ مطمئن سیکھنے والوں کا نیٹ ورک موجود ہے۔
جی ہمارے لئے ایک سوال ہے؟ برائے کرم اس 'جاوا 9' بلاگ کے تبصرے والے حصے میں اس کا ذکر کریں اور ہم جلد از جلد آپ کے پاس مل جائیں گے۔