سؤال

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

هل كانت مفيدة؟

المحلول

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

يمكن العثور على البرنامج التعليمي لجوش بلوخ هنا: http://java.sun.com/docs/books/tutorial/collections/index.html

نصائح أخرى

الجزء المفضل لدي من API هو بالتأكيد java.lang.لديها هذه الفئة تسمى String, ، والذي يسمح لك بالتعامل بسهولة مع صفائف الأحرف.يجب على أي مبرمج جاد في كتابة كود Java جيد التحقق من ذلك.

java.util.concurrent أمر بالغ الأهمية لحياتي.نحن نقوم بالكثير من البرمجة متعددة النواة وفكرة محاولة تنفيذ جميع مهامنا باستخدام الخيوط الخام ذات النمط القديم تجعلني أشعر بالمرض.

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

كما يقول جافادوك،

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

تعمل Java على التخلص من فئات كاملة من الأخطاء التي عادةً ما أقوم بإدخالها لحل هذه المشكلة، مما يتيح لي التركيز على المشكلات الفعلية التي أحتاج إلى حلها.

بالتأكيد إطار المجموعات.يتم استخدامه طوال الوقت سواء كنت تستخدم Java من جانب الخادم أو من جانب العميل، سواءً كانت رسومية أم لا.إنه سهل الاستخدام.تحتوي معظم فئات بنية البيانات على إصدار غير عام وإصدار عام (من الأفضل استخدام الإصدار الثاني، ولكن هناك تعليمات برمجية قديمة تستخدم الإصدار الأول بشكل كبير)، ولكنها متطابقة إلى حد كبير من حيث واجهة برمجة التطبيقات (API) بخلاف معلمات الفئة.في .NET، يمكن أن يكون للإصدارين أسماء/واجهة برمجة تطبيقات مختلفة وقد يكون الأمر مربكًا للغاية.أحب أيضًا الطريقة التي يمتلك بها Java Collections Framework خوارزميات كطرق ثابتة (على سبيل المثال.Collections.sort(collectionVar)) بدلاً من طرق المثيل.في .NET، يستخدمون أساليب المثيل ولسبب ما، لا تحتوي كل بنية بيانات على نوع ما... كما أن Collections Framework غني جدًا ويمكنك العثور على هياكل بيانات بسيطة ومتخصصة (على سبيل المثال.LinkedHashMap الذي يحافظ على ترتيب الإدراج).

أحد الجوانب السلبية التي سمعتها هو أن إطار العمل لا يعمل بشكل جيد وأن بعض الأشخاص يكتبون إطار العمل الخاص بهم.لا يمكنني التحقق من ذلك لأنني لا أتعامل مع الأشياء المهمة للأداء.

javax.naming

http://java.sun.com/javase/6/docs/api/javax/naming/package-summary.html

تعد Java تقنية رائعة لتكامل الأنظمة نظرًا لقابليتها للنقل، وتقوم JNDI بعمل جيد في تجريد تعقيدات الحصول على أول اتصال مع نظام بعيد.

انعكاس.بعض منه في java.lang.reflect وبعض في java.lang (بشكل أساسي Class وClassLoader).

تيارات.تعد التدفقات في Java أسهل بكثير في الفهم والتنفيذ من نظيراتها في C++ (رأي) وعادةً ما يكون من السهل رؤية ما سيفعله التدفق من أجلك، بناءً على أسماء التدفقات التي تأتي مع واجهة برمجة التطبيقات.

أنا معجب كبير ب JPA في جافا EE.لقد أدى ذلك إلى تقليل مقدار العمل الذي أحتاج إلى القيام به لكل من التطبيقات الكبيرة (والتي ستستخدم EJBs) والتطبيقات الصغيرة.

الثاني هو Jaas ، واجهة برمجة تطبيقات الأمن ، إليك رابط Java Se Jaas: http://java.sun.com/javase/technologies/security/

حتى الآن، تعد حزمة Java.util.regex API هي المفضلة لدي لأنها منعتني من الاضطرار إلى إعادة اختراع العجلة في العديد من المناسبات عندما يتعلق الأمر بالبحث عن أجزاء من السلاسل واستخدامها لأغراض مختلفة.

Java.util مفيد للغاية.لماذا؟

  • المجموعات.الكثير منهم!
  • دروس التاريخ والوقت
  • الماسح الضوئي للنص
  • أداة حقن التبعية (منذ Java 6)
  • موضوع الموقت
  • أرقام عشوائية
  • نمط المراقب موجود
  • خصائص جافا

java.util.jar - يساعد في تحميل ملفات .jar في مُحمل فئة لمكونات التطبيق الإضافية الخاصة بي!أنا أحبه.

java.util.regex

هناك حزم أخرى لا أستطيع العيش بدونها، ولكن حزمة regex يجب أن تكون في المستوى الأعلى من "أعظم الإضافات إلى جافا" - بالتأكيد هناك مع المجموعات.

وأنا أتفق مع تعليق الانعكاس.إلى حد بعيد الجزء الأكثر فائدة/قوة في Java API

وبالعودة إلى أيام جافا، كانت واجهة برمجة التطبيقات (API) الأكثر متعة للاستخدام java.util.concurrent, ، وذلك ببساطة لأنه يوفر وحدات بناء مدروسة جيدًا وسهلة الاستخدام للمعالجة المتوازية.

InheritableThreadLocal طوال الطريق !!!يبدو أن الكثير من الفرص لكتابة تعليمات برمجية مبهمة وبكرة الحبل لشنق نفسك لن تنفد أبدًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top