تقدم أحدث مراجعة لجافا بعض البنية المفيدة للسجلات ، من بين تحسينات أخرى.
يتطور عالم برمجة Java باستمرار ، مما يتطلب منك البقاء على اطلاع دائم للتميز في مهنتك.
تقدم Java 21 موجة من التحسينات المثيرة التي تحدث ثورة في كيفية التعامل مع التزامن وعمليات التجميع والعمل مع السجلات.
تقديم الخيوط الافتراضية
لطالما شكلت تطبيقات الخادم المتدرجة تحديات ، حيث أصبحت سلاسل الرسائل غالبًا معوقات. العدد المحدود للخيوط ، بالإضافة إلى الانتظار المتكرر للأحداث أو الأقفال لإلغاء القفل ، يعيق الأداء العام.
في الماضي ، كانت معالجة هذه المشكلة تنطوي على استخدام تركيبات مثل كومبلتابل فيوتشر أو الأطر التفاعلية، مما أدى إلى رمز معقد يصعب فهمه والحفاظ عليه.
لحسن الحظ ، قدم Java 19 خيوطًا افتراضية كميزة معاينة ، والتي صقلها Java 21 وعززها عبر JDK Enhancement Proposal 444.
تقدم الخيوط الافتراضية بديلاً واعدًا للغاية ، مما يتيح لك معالجة تحديات قابلية التوسع بشكل أكثر فعالية. يؤدي هذا إلى تحسين الأداء والاستجابة المحسنة لتطبيقات الخادم.
المجموعات المتسلسلة أكثر قابلية للاستخدام
تقليديا، باستخدام القوائم المرتبطة في برمجة Java الخاصة بك
يتطلب رمزًا مطولًا تمامًا. على سبيل المثال ، لجلب العنصر الأخير ، عليك استخدام هذه الطريقة المرهقة:فار last = list.get (list.size () - 1);
ومع ذلك ، تقدم Java 21 بديلاً موجزًا وأنيقًا:
فار last = list.getLast () ؛
وبالمثل ، يتطلب الوصول إلى العنصر الأول من LinkedHashSet مسارًا دائريًا:
فار first = linkedHashSet.iterator (). next ()؛
ولكن مع Java 21 ، تصبح هذه المهمة أكثر بساطة:
فار first = linkedHashSet.getFirst () ،
يمكنك أيضًا الوصول إلى العنصر الأخير في LinkedHashSet باستخدام ملف انه شهر مميز لصنع الابطال الطريقة التي تتجنب التكرار خلال المجموعة بأكملها.
لا تعمل هذه التحسينات في المجموعات المتسلسلة على تحسين قابلية قراءة الكود فحسب ، بل تعمل أيضًا على تبسيط استرجاع العناصر ، مما يجعل برمجة Java أكثر كفاءة وملاءمة للمطورين.
تسجيل أنماط للراحة
توفر أنماط التسجيل ، التي تم تقديمها كميزة معاينة في Java 19 ، آلية ملائمة للوصول إلى حقول السجل في Java دون الحاجة إلى عمليات إرسال أو طرق وصول صريحة.
يتآزرون مع مطابقة النمط على سبيل المثال و مطابقة النمط للتبديل، وتبسيط التعليمات البرمجية بشكل كبير وتعزيز سهولة القراءة بشكل عام.
إليك توضيح لهذا المفهوم ، مع تسجيل بسيط يسمى موضع:
عام سِجِلّ موضع(int س ، int ذ){}
في السابق ، كان يتم تنفيذ إجراءات مختلفة بناءً على فئة الكائن المطلوبة باستخدام مطابقة النمط على سبيل المثال، كما هو موضح في مقتطف الشفرة التالي:
عامفارغمطبعة(كائن س){
لو (س حالة المنصب ع) {
System.out.printf ("o هو الموضع:٪ d /٪ d٪ n"، p.x ()، p.y ())؛
} آخرلو (س حالة سلاسل) {
System.out.printf ("o عبارة عن سلسلة:٪ s٪ n"، س)؛
} آخر {
System.out.printf ("o شيء آخر:٪ s٪ n"، س) ؛
}
}
مع أنماط التسجيل، يمكنك الآن مطابقة نمط تسجيل مثل الموضع (int x، int y) بدلاً من استخدام ملف الموقف ص نمط. هذا يسمح لك بالوصول إلى المتغيرات x و ذ مباشرة في الكود ، مما يلغي الحاجة إلى ص. () و السنة التحضيرية():
عامفارغمطبعة(كائن س){
لو (ا حالةموضع(int س ، int ذ)) {
System.out.printf ("o هو الموضع:٪ d /٪ d٪ n"، س ، ص) ؛
} آخرلو (س حالة سلاسل) {
System.out.printf ("o عبارة عن سلسلة:٪ s٪ n"، س)؛
} آخر {
System.out.printf ("o شيء آخر:٪ s٪ n"، س) ؛
}
}
علاوة على ذلك ، يمكنك استخدام ملفات أنماط التسجيل بالتزامن مع مطابقة النمط للتبديل، لتبسيط الكود بشكل أكبر:
عامفارغمطبعة(كائن س){
يُحوّل (س) {
قضيةموضع(int س ، int ذ) -> System.out.printf("o هو الموضع:٪ d /٪ d٪ n"، س ، ص);
قضية سلسلة s -> System.out.printf ("o عبارة عن سلسلة:٪ s٪ n"، س)؛
تقصير -> System.out.printf ("o شيء آخر:٪ s٪ n"، س) ؛
}
}
أنماط التسجيل المتداخلة تسمح لك بالمطابقة في السجلات التي تعد حقولها هي نفسها سجلات. على سبيل المثال ، ضع في اعتبارك سجلًا باسم طريق التي تضم أ من و ل موضع:
عام سِجِلّ طريق(المنصب من ، المركز إلى){}
من خلال استخدام أنماط التسجيل ، وطباعة أ طريق يصبح الكائن أكثر إيجازًا:
عامفارغمطبعة(كائن س){
يُحوّل (س) {
قضيةطريق(المنصب من ، المركز إلى) -> System.out.printf("o مسار:٪ d /٪ d ->٪ d /٪ d٪ n"، from.x ()، من.ذ()، ل.x()، ل.ذ());
// حالات اخرى
}
}
بمساعدة أنماط التسجيليصبح التعامل مع السجلات مع الحقول من أنواع مختلفة أكثر وضوحًا وقراءة. لنفترض أنك قمت بتعديل السجلات ، المركز 2D و المنصب 3 D، أين موضعهي واجهة جافا كلاهما ينفذ:
عام مختوم واجهه المستخدمموضعتسمحالمركز 2D, المنصب 3 D{}
عام سِجِلّ المركز 2D(int س ، int ذ) يطبق الموقف {}
عام سِجِلّ المنصب 3 D(int س ، int ذ int ض) يطبق الموقف {}
عام مسار التسجيل (P from، P to) {}
للتمييز بين سلوك الطباعة للمسارات ثنائية وثلاثية الأبعاد ، يمكنك استخدام أنماط التسجيل:
عامفارغمطبعة(كائن س){
يُحوّل (س) {
قضيةطريق(Position2D from، Position2D to) -> System.out.printf("o هو مسار ثنائي الأبعاد:٪ d /٪ d ->٪ d /٪ d٪ n"، from.x ()، من.ذ()، ل.x()، ل.ذ());
قضيةطريق(Position3D from، Position3D to) -> System.out.printf("o مسار ثلاثي الأبعاد:٪ d /٪ d /٪ d ->٪ d /٪ d /٪ d٪ n"، from.x ()، من.ذ()، من.ض()، ل.x()، ل.ذ()، ل.ض());
// حالات اخرى
}
}
تقلل أنماط التسجيل الإسهاب بشكل كبير وتعزز قابلية قراءة الكود عند التعامل مع السجلات التي تحتوي على حقول من أنواع متنوعة.
أطلق العنان لإمكانيات جديدة باستخدام Java 21
يقدم Java 21 مجموعة من الميزات القوية التي تزيد من إمكانيات لغة برمجة Java. من خلال تبني هذه التحسينات ، يمكنك تبسيط عمليات التطوير الخاصة بك وإطلاق العنان لإمكانيات جديدة لتطبيقاتك.
يتيح لك البقاء على اطلاع دائم بأحدث ميزات اللغة وأطر عمل Java الحفاظ على كود فعال وقابل للصيانة ، مما يضمن لك البقاء في طليعة برمجة Java.