JavaRush /مدونة جافا /Random-AR /المشاكل الأكثر شيوعًا لأولئك الذين يبدأون في تعلم Java

المشاكل الأكثر شيوعًا لأولئك الذين يبدأون في تعلم Java

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

مشكلة المستوى 0: الارتباك مع عامل المقارنة (==) وعامل التخصيص (=).

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

المشكلة: استخدام عامل المقارنة (==) لاختبار تكافؤ السلسلة

ما يجب فعله: تذكر أنه لا يمكن التحقق من تكافؤ كائنات Java باستخدام(==) ، نظرًا لأن هذا العامل مصمم لاختبار مساواة الأنواع الأولية.
المشاكل الأكثر شيوعًا لأولئك الذين يبدأون في تعلم Java - 2
بالنسبة للكائنات التي تحتاج إلى استخدام .equals(). وفي Stringلغة جافا، فهو ليس أكثر من كائن (و immutable).
الكائن الذي تم وضع علامة عليه Immutable هو كائن لا يمكن تغيير حالته بعد إنشائه. في Java ، هذا يعني أن جميع حقول المثيلات لفئة ما تم تمييزها على finalأنها أولية (أو أيضًا immutable).

المشكلة: تسلسل السلسلة في حلقة

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

المشكلة: NullPointerException

يحدث هذا النوع من الاستثناء عندما نحاول استخدام مؤشر فارغ nullبينما نحتاج في الواقع إلى كائن حقيقي.
جميع الأنواع البدائية لها قيم افتراضية. إذن، y intهو 0، و y booleanهو false. القيمة الافتراضية لأي أنواع مرجعية، أي الكائنات، هي null. إنها ليست كائنًا أو نوعًا، إنها قيمة خاصة. وهو ما يعني في الأساس "لا يوجد شيء هنا".
المشاكل الأكثر شيوعًا لأولئك الذين يبدأون في تعلم Java - 3
ما يجب فعله: إذا تمت كتابة التعليمات البرمجية الخاصة بك بطريقة يمكن للكائن الخاص بك في مرحلة ما أن يقبل القيمة null، فستحتاج إلى إضافة "التحقق من null"، خاصة إذا كنت لا تقوم بإنشاء الكائن بنفسك. تذكر أيضًا أنه من الأفضل إرجاع مجموعات فارغة بدلاً من إرجاع مجموعة من null. سيكون من الجيد أيضًا إضافة التحقق من صحة الحروف والمستوطنين.

المشكلة: لسبب ما لا تعمل حلقة if / while / for

if (something.equals («что-то еще»)); {// <---- корень зла!!!
     System.out.println («Почему я не работаю???»);
}
ما هو الخطأ هنا؟ الأمر بسيط: لقد أفسدت الفاصلة المنقوطة الإضافية دماء مئات الآلاف من مبرمجي Java المبتدئين. حسنًا، لن تحتاج إليه بعد ذلك if (). من وجهة نظر اللغة، يعتبر بناء الجملة هذا مقبولًا تمامًا، لذلك لن يشكو المترجم منه. لكنه ينهي العبارة الشرطية، ولن يفي الكود الموجود داخل الكتلة {}بالشرط أعلاه أبدًا.
المشاكل الأكثر شيوعًا لأولئك الذين يبدأون في تعلم Java - 4
الحل: تذكر منطق التصميم. علامة " ;" تعني نهاية كتلة معينة، ولكن هنا كل شيء بدأ للتو.

المشكلة: محاولة الوصول إلى متغيرات الأعضاء غير الثابتة من خلال الأساليب الثابتة (مثل الطريقة الرئيسية)

حل . وترتبط هذه المشكلة بفهم المفهوم نفسه static. إذا تم تمييز الطريقة بهذه الكلمة، فهذا يعني أننا لسنا بحاجة إلى إنشاء مثيل للفئة لاستدعاء الطريقة الرئيسية. لذا فإن الحل هو أن يكون لديك فهم جيد لـ "الإحصائيات" وفهم جوهرها.

المشكلة: محاولة إعادة اختراع العجلة من خلال تطوير المكتبات والأدوات الموجودة بالفعل

حل. إنها في الواقع ليست مشكلة كبيرة. بالنسبة للمبتدئين، يعد هذا تمرينًا مفيدًا أكثر. ومع ذلك، إذا كنت ترغب في التركيز على النتيجة، على سبيل المثال، إنشاء قاعدة بيانات مريحة للمشتركين، فإن البحث عن مشترك في دليل الهاتف هو مجرد إحدى نتائج تطبيقك. في هذه الحالة، ليست هناك حاجة لكتابة خوارزمية بحث ثنائية. استخدم واحدًا موجودًا (نؤكد لك أن شخصًا ما قد كتبه من قبلك وهو موجود في المكتبات القياسية). لذا قم بدراسة مكتبات Java القياسية في وثائق Oracle. تعلم استخدام Google، واعتاد على قراءة Stack Overflow واطرح الأسئلة حول مساعدة JavaRush ! ...وبطبيعة الحال، هذه ليست كل مشاكل المبتدئين. وصف لك في التعليقات! هل أنت مهتم بقراءة المقالات المتعلقة بجافا؟ انضم إلى مجموعة مطوري جافا . هناك الكثير من الأشياء المثيرة للاهتمام هنا.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION