كيفية الطلب

1 تسجيل الدخول أو إنشاء حساب جديد.
2 راجع طلبك أو اطلب خدمة جديدة.
3 تأكيد الدفع

إذا كنت لا تزال تواجه مشكلات ، فالرجاء إخبارنا بذلك عن طريق إرسال بريد إلكتروني إلى support@natchcenter.com . شكراً لك!

ساعات العمل

الإثنين-للجمعة 9:00AM - 20:00PM
السبت - 9:00AM-17:00PM
أيام الأحد عن طريق موعد مسبق فقط!

تعرف معنا علي مميزات جافا تسعة الجديدة

من قبل NatchCenter / يون 13, 2018 / نشرت في المواقع
تعرف معنا علي مميزات جافا تسعة الجديدة

بعد مرور أكثر من ثلاث سنوات على إصدار Java 8 ، أصبح الإصدار التالي الآن قاب قوسين أو أدنى من التاريخ المبدئي 21 سبتمبر 2017. ربما سمعت عن نظام وحدة Java 9 ، ولكن هناك المزيد لهذا الإصدار الجديد. إليك تسعة ميزات جديدة ومثيرة سيتم طرحها باستخدام Java 9.

1. نظام وحدة Java Platform

ميزة تعريف Java 9 هي نظام وحدة جديدة كليًا. عندما تنمو الكودات الكبيرة ، تزداد احتمالات خلق "شفرة سباغيتي" معقدة ومتشابكة بشكل كبير. هناك مشكلتان أساسيتان: من الصعب حقا تغليف رمز ، وليس هناك فكرة عن التبعيات الصريحة بين أجزاء مختلفة (ملفات JAR) من النظام. يمكن لأي فئة عامة أخرى الوصول إلى كل فئة عامة في فصل دراسي ، مما يؤدي إلى استخدام غير مقصود للفصول الدراسية التي لم يكن من المفترض أن تكون واجهة برمجة تطبيقات عامة. علاوة على ذلك ، فإن مسار الصخب نفسه يمثل مشكلة: كيف تعرف ما إذا كانت جميع JARs المطلوبة موجودة ، أم إذا كانت هناك إدخالات مكررة؟ نظام الوحدة النمطية يعالج كلا القضيتين.

تحتوي ملفات JAR Modular على واصف وحدة إضافي. في واصف هذه الوحدة ، يتم التعبير عن الاعتماديات على الوحدات الأخرى من خلال عبارات `requires`. بالإضافة إلى ذلك ، تتحكم عبارات `الصادرات` في الحزم التي يمكن الوصول إليها إلى وحدات أخرى. جميع الحزم غير المصدرة مغلفة في الوحدة النمطية بشكل افتراضي. فيما يلي مثال لواحد وحدة نمطية ، والذي يعيش في `module-info.java`:

وقد تم تجسيد منصة Java نفسها باستخدام نظام الوحدة الخاص بها أيضًا. من خلال تضمين الطبقات الداخلية لـ JDK ، تصبح المنصة أكثر أمانًا وتطورها تصبح أكثر سهولة.

عند بدء تطبيق نموذجي ، يتحقق JVM من إمكانية حل جميع الوحدات بناءً على عبارات `يتطلب` - وهي خطوة كبيرة صعودًا من مسار الصفيق الهش. تتيح لك الوحدات النمطية تحسين بنية تطبيقك من خلال التطبيق القوي للتغليف والتبعية الصريحة. يمكنك معرفة المزيد حول العمل مع الوحدات النمطية في Java 9 بهذه الدورة التدريبية.

2. ربط

عندما يكون لديك وحدات مع تبعيات صريحة ، و JDK نمطي ، تظهر احتمالات جديدة. تحدد وحدات التطبيق الخاصة بك الآن اعتمادياتها على وحدات التطبيق الأخرى وعلى الوحدات التي تستخدمها من JDK. لماذا لا تستخدم هذه المعلومات لإنشاء الحد الأدنى من بيئة التشغيل ، والتي تحتوي فقط على الوحدات اللازمة لتشغيل التطبيق الخاص بك؟ وهذا ممكن بفضل أداة jlink الجديدة في Java 9. وبدلاً من شحن التطبيق الخاص بك بتثبيت JDK محمل بالكامل ، يمكنك إنشاء حد أدنى من صورة وقت التشغيل الأمثل للتطبيق الخاص بك.

3. JShell: جافا التفاعلية REPL

العديد من اللغات تحتوي بالفعل على برنامج Read-Eval-Print-Loop التفاعلي ، و Java الآن تنضم إلى هذا النادي. يمكنك تشغيل jshell من وحدة التحكم والبدء مباشرة في كتابة وتنفيذ تعليمات Java البرمجية. تجعل التعليقات الفورية من jshell أداة رائعة لاستكشاف واجهات برمجة التطبيقات وتجربة ميزات اللغة.

اختبار تعبير Java العادي هو مثال رائع على كيفية جعل jshell حياتك أسهل. كما أن الغلاف التفاعلي يصنع بيئة تعليمية رائعة وتعزيزًا للإنتاجية ، والتي يمكنك معرفة المزيد عنها في هذا البرنامج التعليمي على الويب. لم يعد عليك أن تشرح ما هذا "الفراغ الاستاتيكي العام الرئيسي (String [] args)" هو كلام فارغ عند تعليم الناس كيفية ترميز Java.

4. تحسين Javadoc

في بعض الأحيان تكون الأشياء الصغيرة التي يمكن أن تحدث فرقا كبيرا. هل استخدمت Google طوال الوقت للعثور على صفحات جافا سكوت المناسبة ، مثلي تمامًا؟ هذا لم يعد ضروريا. يتضمن Javadoc الآن البحث مباشرة في وثائق API نفسها. كمكافأة إضافية ، أصبح إخراج Javadoc متوافقًا الآن مع HTML5. أيضا ، ستلاحظ أن كل صفحة Javadoc تتضمن معلومات عن وحدة JDK التي تأتي منها الطبقة أو الواجهة.

. 5-طرق جمع المصنع

غالبًا ما ترغب في إنشاء مجموعة (على سبيل المثال ، قائمة أو مجموعة) في شفرتك ، وقم بملئها مباشرة ببعض العناصر. يؤدي ذلك إلى رمز مكرر حيث تقوم بإنشاء المجموعة ، متبوعة بعدة مكالمات `إضافة`. مع Java 9 ، تمت إضافة العديد من الطرق المعروفة باسم مصنع التجميع:

اضبط <integer> ints = Set.of (1، 2، 3)؛

قائمة <String> سلاسل = List.of ("first"، "second")؛

بالإضافة إلى كونها أقصر وأجمل للقراءة ، فإن هذه الأساليب تعفيك أيضًا من الاضطرار إلى اختيار تنفيذ مجموعة محددة. في الواقع ، يتم تحسين عمليات تنفيذ المجموعة التي يتم إرجاعها من أساليب المصنع إلى أقصى حد لعدد العناصر التي تضعها. هذا ممكن لأنه غير قابل للتغيير: يؤدي إضافة عناصر إلى هذه المجموعات بعد الإنشاء إلى "استثناء عملية غير مدعومة".

 

6. ستريم تحسينات API

يمكن القول أن واجهة برمجة تطبيقات Streams هي واحدة من أفضل التحسينات على مكتبة Java القياسية منذ وقت طويل. يسمح لك بإنشاء خطوط تعريفية من التحولات على مجموعات. مع Java 9 ، هذا يتحسن فقط. هناك أربع طرق جديدة تضاف إلى واجهة دفق: dropWhile ، takeWhile ، من Nullable. تحصل طريقة التكرار على حمل زائد جديد ، مما يتيح لك توفير دالة Predicate في وقت إيقاف التكرار:

IntStream.iterate (1، i -> i <100، i -> i + 1). forEach (System.out :: println)؛

الوسيطة الثانية هي lambda التي ترجع true حتى يصبح العنصر الحالي في IntStream 100. هذا المثال البسيط لذلك طباعة الأعداد الصحيحة 1 حتى 99 على وحدة التحكم.

إلى جانب هذه الإضافات على Stream (نفسها) ، تم تحسين التكامل بين الاختياري و Stream. من الممكن الآن تحويل كائن اختياري إلى دفق (ربما فارغ) باستخدام طريقة `stream` الجديدة على اختياري:

دفق <عدد صحيح> s = Optional.of (1) .stream ()؛

يعتبر تحويل "اختياري" إلى "ستريم" مفيدًا بشكل خاص عند إنشاء خطوط أنابيب دفق معقدة.

7. طرق الواجهة الخاصة

جلبت لنا 8 جافا طرق الافتراضي على واجهات. يمكن أن تحتوي الواجهة الآن أيضًا على سلوك بدلاً من تواقيع الأسلوب فقط. ولكن ماذا يحدث إذا كان لديك العديد من الطرق الافتراضية على واجهة مع التعليمات البرمجية التي تفعل الشيء نفسه تقريبًا؟ عادةً ، يمكنك إعادة تكرير هذه الطرق لاستدعاء طريقة خاصة تحتوي على الوظيفة المشتركة. لكن الأساليب الافتراضية لا يمكن أن تكون خاصة. لا يعد إنشاء طريقة افتراضية أخرى بالشفرة المشتركة حلاً لأن هذا الأسلوب المساعد يصبح جزءًا من واجهة برمجة التطبيقات العامة. باستخدام Java 9 ، يمكنك إضافة أساليب المساعد الخاص إلى واجهات لحل هذه المشكلة:

الواجهة العامة My Interface {

 

    void normalI interface Method ()؛

 

    واجهة الفراغ الافتراضي الأسلوب الافتراضي () {init ()؛ }

 

    الافتراضي باطل آخر افتراضي الأسلوب () {init ()؛ }

 

    // هذه الطريقة ليست جزءًا من واجهة برمجة التطبيقات العامة المكشوفة بواسطة MyInterface

    init void init () {System.out.println ("Initializing")؛ }

}

إذا كنت تقوم بتطوير واجهات برمجة التطبيقات بالطرق الافتراضية ، يمكن أن تكون طرق الواجهة الخاصة مفيدة في هيكلة تنفيذها.

8. HTTP / 2

طريقة جديدة لأداء مكالمات HTTP تصل إلى Java 9. هذا الاستبدال الذي طال انتظاره لواجهة برمجة تطبيقات 'Http URL Connection` القديمة يدعم أيضًا مقابس الويب و HTTP / 2 خارج المربع. تحذير واحد: يتم تسليم واجهة برمجة تطبيقات HttpClient الجديدة على أنها وحدة _incubator__ في Java 9. وهذا يعني عدم ضمان واجهة برمجة التطبيقات لتكون نهائية بنسبة 100٪ حتى الآن. ومع ذلك ، مع وصول Java 9 ، يمكنك البدء بالفعل في استخدام واجهة برمجة التطبيقات هذه:

HttpClient client = HttpClient.newHttpClient ()؛

 

HttpRequest req =

    Http Request.newBuilder (URI.create ("http://www.google.com"))

               .header ("عامل المستخدم"، "جافا")

               .احصل على()

               . البناء ()؛

 

 

HttpResponse <String> resp = client.send (req، HttpResponse.BodyHandler.asString ())؛

إلى جانب نموذج الطلب / الاستجابة البسيط هذا ، يوفر HttpClient واجهات برمجة تطبيقات جديدة للتعامل مع ميزات HTTP / 2 مثل التدفقات ودفع الخادم.

9. متعددة JARs الافراج

الميزة الأخيرة التي نسلط عليها الضوء هي أخبار جيدة للمشرفين على المكتبات. عندما يخرج إصدار جديد من جافا ، يستغرق الأمر سنوات لجميع مستخدمي مكتبتك للتبديل إلى هذا الإصدار الجديد. وهذا يعني أن المكتبة يجب أن تكون متوافقة مع الإصدارات القديمة من إصدار Java الذي تريد دعمه (على سبيل المثال ، Java 6 أو 7 في العديد من الحالات). هذا يعني أنك لن تتمكن من استخدام الميزات الجديدة لـ Java 9 في مكتبتك لفترة طويلة. لحسن الحظ ، تسمح لك ميزة JAR متعددة الإصدارات بإنشاء إصدارات بديلة من الفصول التي يتم استخدامها فقط عند تشغيل المكتبة على إصدار Java محدد:

multirelease.jar

├── META-INF

│ └── الإصدارات

└── └── 9

└── └── multirelease

Helper.class

├── multirelease

    ├── Helper.class

    └── Main.class

في هذه الحالة ، يمكن استخدام multirelease.jar على Java 9 ، حيث يستخدم بدلاً من فئة multirelease.Helper ذات المستوى الأعلى ، واحد تحت `META-INF / versions / 9`. يمكن لهذا الإصدار الخاص بـ Java 9 من الفئة استخدام ميزات Java 9 والمكتبات. في الوقت نفسه ، لا يزال استخدام JAR على إصدارات Java السابقة يعمل ، نظرًا لأن إصدارات Java القديمة لا ترى سوى فئة المساعد الأعلى مستوى

تسجيل الدخول إلى حسابك للوصول إلى ميزات مختلفة

او استخدم وسائل التواصل

إنشاء حساب

نسيت معلومات الدخول؟

عرض سعر

سنفعل كل ما في وسعنا لجعل مشروعك أفضل مشروع لدينا!

إشترك معنا في الأخبار

سوف تتلقى إشعارات عن أحدث العروض والعروض الترويجية

لا تظهر هذا مرة أخرى!
TOP