الغرض من كتابة هذا المقال هو تلخيص بعض تجاربي في استخدام Java على مر السنين ، ويرتبط أساسًا ببعض نقاط المعرفة Java الأساسية ، لذلك آمل أيضًا أن أشاركها مع مبرمجي Java الذين بدأوا للتو والمبتدئين المحتملين الذين يعتزمون الدخول إلى صناعة تطوير Java. آمل أن أعطيك بعض الخبرة وأن تسمح لك بالتعلم واستخدام جافا بشكل أفضل.
المحتوى الرئيسي لهذه المقدمة هو الجزء المتعلق بـ J2SE. بالإضافة إلى ذلك ، سنقدم بعض المحتوى المتعلق بـ J2EE المتعلق بكل إطار في Java في المستقبل.
بعد سنوات عديدة من تطوير Java وجمعها مع بعض الخبرة في مقابلة مطوري Java ، أعتقد أن الشيء الرئيسي لـ J2Se هو إتقان المحتوى التالي.
1. JVM ذات الصلة (بما في ذلك ميزات كل إصدار)
بالنسبة لأولئك الذين يتورطون للتو في Java ، لا تحتاج المعرفة المتعلقة بـ JVM بالضرورة إلى فهمها بعمق ، لذلك يمكنك أن يكون لديك فهم بسيط للمفاهيم فيه. ومع ذلك ، بالنسبة لمطور كبير مع أكثر من 3 سنوات من تجربة Java ، من غير المقبول تقريبًا عدم معرفة JVM.
كأساس لعملية Java ، من الصعب تصديق أن الأشخاص الذين لا يعرفون JVM على الإطلاق يمكنهم فهم لغة Java تمامًا. عندما قابلت مطورين مع أكثر من 3 سنوات من تجربة Java ، كان JVM سؤالًا لا بد منه. بطبيعة الحال ، فإن JVM ليس هو السؤال الوحيد للمقابلة الذي يحدد جودة القدرات الفنية ، ولكن يمكن أن يثبت مستوى إمكانيات تطوير Java.
في فئة JVM ، أعتقد أن المعرفة التي يجب إتقانها هي:
نموذج الذاكرة JVM والهيكل
مبدأ GC ، ضبط الأداء
ضبط: تفريغ الخيط ، تحليل بنية الذاكرة
بنية رمز ثنائي الفئة ، نظام تحميل الفئة ، عملية تحميل الفئة ، عملية إنشاء المثيل
عملية تنفيذ الطريقة
ميزات جديدة توفرها العديد من تحديثات الإصدار الرئيسي لـ Java (تتطلب فهمًا بسيطًا)
2. عملية جافا (الأساسيات الأساسية)
قد يكون هذا بسيطًا جدًا. من لا يستطيع تشغيل برنامج Java؟ ولكن في كثير من الأحيان ، نقوم فقط بتنفيذ برامج Java من خلال IDE. كيف تقوم IDE الأساسي بتنفيذ برامج Java؟ كثير من الناس لا يفهمون.
نقطة المعرفة هذه هي الشيء الأساسي الذي يحتاجه مطورو Java لإتقانه. عندما تكون مبتدئًا ، فإن أول شيء هو تعليمك كيفية تنفيذ برامج Java على سطر الأوامر ، لكن الكثير من الناس ينسون هذا بمجرد الانتهاء من تعلم Java واستخدام IDE. لماذا تؤكد معرفة هذا؟ بعد أن تعرف أنقى طريقة لبدء Java ، يمكنك تحليل عدد الأدلة التي بدأت في ذلك الوقت ، وكيفية تنفيذ التسمية ، وما هي المعلمات ، سواء كانت هناك أي مفقودة ، وما إلى ذلك عندما تكون هناك مشكلة في بدء التشغيل. سيساعدك ذلك على حل المشكلات الغريبة المتعلقة بالبيئة في التنمية الحقيقية.
المعرفة التي تحتاجها لإتقانها هنا هي:
يقوم Javac بتجميع ملف Java كملف فئة
استخدام أوامر Java ، كيفية بدء فئة Java مع حزمة على سطر الأوامر
المسارات المختلفة المشاركة في برنامج Java (classpath ، java.library.path ، الدليل المنزلي حيث تعمل Java ، إلخ)
3. نوع البيانات
لا يوجد شيء يمكن قوله حول هذا المقال ، إنه ليس أكثر من إتقان الأنواع الأساسية وأنواع الكائنات في Java. يمكنك معرفة المزيد حول كيفية تحويل JDK تلقائيًا ، بما في ذلك التعبئة والتعبئة ، وما إلى ذلك ، يجب عليك أيضًا الانتباه لتجنب الحكم على أنواع متساوية بعد التعبئة.
نقاط المعرفة الرئيسية:
الأنواع الأساسية: int ، طويلة ، تعويم ، مزدوجة ، منطقية ،. . .
أنواع الكائنات المقابلة: عدد صحيح وأنواع أخرى إلى تحويل الأنواع الأساسية والتعبئة واللصق
نوع الكائن: يساوي ، hashcode
ميزات نوع السلسلة
4. الكائنات والحالات ، خلق الكائن
في هذا الصدد ، يحتاج المطورون إلى فهم مفاهيم الطبقة والمثال والاختلافات بينهما ، والتي تعد أساسًا للميزات الموجهة للكائنات في Java. نقاط المعرفة الرئيسية هي:
مفاهيم الطبقة والمثال
عملية إنشاء مثيل:
1. لا يوجد ميراث: تخصيص مساحة الذاكرة ، وتهيئة المتغيرات ، ومكالمات مُنشئو المكالمات
2. الميراث: يتعامل مع الإجراءات الثابتة ، ويخصص مساحة الذاكرة ، ويعرف المتغيرات على أنها القيم الأولية ، ويتعامل مع التهيئة في التعريف ، وينفذ المنشئ
تشير إلى ملاحظة:
تتم تهيئة الخصائص الثابتة ، وما إلى ذلك من الفئات الفرعية الأساسية
الميزات المتعلقة بالطريقة الافتراضية بدون المعلمة
5. السيطرة على الوصول
هذا أيضًا أساس لميزات تغليف Java ، وما يجب إتقانه هو:
تأثير تعديل القطاع الخاص المحمي العام للفصل والطريقة والمجال
6. التحكم في العملية
أساسيات التحكم في عملية Java ، على الرغم من أن بعض الجملة ليست بالضرورة استخدامها بشكل شائع ، إلا أنها تحتاج إلى فهمها واستخدامها في الأماكن الصحيحة.
ما يجب إتقانه هو:
بناء جملة للتحكم في العملية مثل إذا ، التبديل ، حلقة ، ل ، بينما
7. مفهوم البرمجة الموجهة للكائنات
هذا مفهوم أساسي لـ Java يحتاج إلى إتقانه من قبل أي مطور Java. ترتبط العديد من الميزات أو نقاط المعرفة في Java بمفهوم البرمجة الموجهة للكائنات في Java. في فهمي ، لا يحتاج المطور الجيد إلى فهم هذه الميزات (نقاط المعرفة) بأنفسهم فحسب ، بل يحتاج أيضًا إلى معرفة كيفية انعكاس هذه الكائنات في مفهوم البرمجة الموجهة للكائنات في Java ، والتي تتوافق مع المطورين إلى إتقان لغة التطوير في Java ولغات البرمجة الأخرى الموجهة نحو الكائنات. لقد أدرجت باختصار هنا ، وتشمل نقاط المعرفة الرئيسية:
ثلاث ميزات رئيسية موجهة نحو الكائن: تغليف ، الميراث ، تعدد الأشكال ؛ مفاهيم التعريف الخاصة بهم ، ما هي خصائصها المنعكسة ، وسيناريوهات الاستخدام الخاصة بها
مفهوم التوزيع المتعدد الثابت والتوزيع الديناميكي
مفهوم واستخدام التحميل الزائد
الميراث: تطبيقات واجهة متعددة ، وراثة من فئة قاعدة واحدة
مجردة ، فئة مجردة ، واجهة
تعدد الأشكال: مفهوم واستخدام تغطية الطريقة
رد الاتصال واجهة
8. ثابت
وتستخدم السمات الثابتة أيضًا بشكل متكرر في تطوير Java اليومي. تحتاج إلى فهم الاستخدام المتعلق بالكلمات الرئيسية الثابتة ، وكذلك استخدامها بالتزامن مع الكلمات الرئيسية الأخرى ، مثل ما إذا كان يمكن استخدامها بالاقتران مع الكلمات الرئيسية مثل التجريدية والنهائية.
الأشياء الرئيسية لإتقانها هي:
تعريف الخصائص الثابتة ، والاستخدام ، وكيفية تهيئة الفصل عند التحميل
تعريف واستخدام الطرق الثابتة
تعريف واستخدام الفئات الثابتة
تعريف وتوقيت تهيئة كتل الرمز الثابت
9. نقاط المعرفة الأساسية
هنا ندرج بشكل رئيسي بعض نقاط المعرفة Java المتناثرة التي لم يتم تصنيفها بشكل منهجي. كما أنه يستخدم كثيرًا في التنمية اليومية. هناك بالفعل الكثير من المحتوى في هذا المجال. في الوقت الحاضر ، قمت بتلخيصها فقط في الوقت الحالي:
مشتمل:
يساوي ، hashcode ، string/stringbuffer ، النهائي ، أخيرًا ، ينتهي
10. إطار التجميع
هذا جزء يحتاج إلى مزيد من التمكن. يمكن القول أنه لا توجد حاجة إلى أطر جمع التجميع دون استخدامها. هذا مهم جدا. ومع ذلك ، فإن نقاط المعرفة هنا ليست صعبة ، ولكن من الأفضل فهم طريقة التنفيذ الداخلية للمجموعات ، لأن هذا سيساعدك على اختيار الإطار المناسب في سيناريوهات مختلفة لحل المشكلة. على سبيل المثال ، إذا كان لديك مجموعة من 10،000 عنصر ، فغالبًا ما تحتاج إلى تنفيذها على عمليات الحكم. إذا كنت تعرف خصائص المجموعة أو التنفيذ الداخلي ، فمن السهل اتخاذ القرار الصحيح.
يتم تضمين المحتوى التالي هنا (عدم تضمين ارتباط التزامن):
نظام إطار العمل: المجموعة الأساسية ، الخريطة
محتويات تطبيقات مجموعة محددة ، قائمة ، مجموعة ، خريطة تطبيقات محددة ، الهياكل الداخلية ، الأساليب الخاصة ، السيناريوهات المعمول بها ، إلخ.
استخدام المجموعات ، إلخ.
11. إطار الاستثناء
قد لا تؤخذ الاستثناءات على محمل الجد في تطوير Java. بشكل عام ، عند مواجهة استثناءات ، سيتم إلقاؤهم مباشرة ، أو ببساطة اللحاق بها ومعالجتها ، ولن يكون لها أي تأثير كبير على التشغيل العام للبرنامج. ومع ذلك ، في التصميم والتطوير على مستوى المؤسسة ، غالبًا ما يرتبط تصميم ومعالجة التشوهات بالمتانة الشاملة للنظام. بالنسبة للمطورين ، يجب توحيد التعامل مع الاستثناءات في نظام جيد وتجنب الكثير من الاستثناءات المنطقية المنتشرة في كل مكان ؛ بالنسبة للأنظمة ، يجب أن تكون الاستثناءات قابلة للسيطرة وسهلة التشغيل والصيانة. بعد ظهور بعض الاستثناءات ، يجب أن تكون هناك طريقة للتعامل معهم ومعرفة كيفية التشغيل والصيانة. لذلك ، على الرغم من أن إطار الاستثناء بسيط للغاية ، فإن تطوير التطبيقات على مستوى المؤسسة بأكمله ، إلا أن معالجة الاستثناءات مهمة للغاية. للتعامل مع الاستثناءات بشكل جيد ، تحتاج إلى فهم نظام الاستثناء في Java.
لا توجد العديد من نقاط المعرفة التي يجب إتقانها في هذا الجزء ، بشكل رئيسي:
نظام غير طبيعي:
رمي
استثناء
RunTimeException
خطأ
الفرق بين RunTimeException والاستثناء العام ، أساليب المعالجة المحددة ، إلخ.
12. جافا IO
IO ليس بسيطًا فقط في Java لقراءة الملفات وكتابتها ، ولكنها تتضمن أيضًا جميع عمليات الإدخال والمخرجات مثل قراءة وكتابة شبكات المقبس. على سبيل المثال ، قراءة محتوى النشر في طلبات HTTP القياسية هي أيضًا عملية إخراج ، إلخ ...
بالنسبة لـ IO ، لا توفر Java واجهات برمجة التطبيقات الأساسية ذات الصلة بالمدخلات والمخرجات فحسب ، بل توفر أيضًا بعض واجهات برمجة التطبيقات القارئ والكاتب المبسطة ، والتي تعتبر أيضًا مهمة للغاية في بعض التطورات (المشاريع التي تتضمن عدد كبير من عمليات IO). سيتضمن أيضًا (سجلات وقراءة وكتابة الملفات المؤقتة ، إلخ) في التطوير اليومي.
نقاط المعرفة الرئيسية هنا هي:
نظام IO الأساسي: بما في ذلك InputStream ، OutputStream ، القارئ/الكاتب ، قراءة الملفات ، قراءة دفق مختلفة ، إلخ.
مفهوم NIO ، أساليب الاستخدام المحددة وسيناريوهات الاستخدام
13. التزامن متعدد الخيوط
Multithreading هو جزء صعب نسبيا في جافا. إذا تم استخدام متعدد الخيوط بشكل صحيح ، فيمكنه تحسين معدل استخدام وحدة المعالجة المركزية بشكل فعال وتحسين كفاءة النظام الإجمالية ، خاصةً عندما يكون هناك عدد كبير من عمليات IO التي تمنع ؛ لكنه أيضا سيف مزدوج الحدين. إذا لم يتم استخدامه بشكل جيد ، فلن يتم تحسين النظام بشكل كبير أو لم يتم تحسينه ، بل سيحقق أيضًا مشاكل مثل تصحيح الأخطاء بين خيوط متعددة.
هناك العديد من المحتويات في MultiThreading. أشرح بإيجاز نقاط المعرفة التي تحتاج إلى إتقان في Java في الاستخدام الأولي للترابطات المتعددة. في المستقبل ، إذا أتيحت لك الفرصة لتقديم بعض الميزات المتقدمة بالتفصيل ، فسيكون لديك مقدمة مفصلة لسيناريوهات الاستخدام لبعض الميزات المتقدمة.
التنفيذ متعدد مؤشرات الترابط وبدء التشغيل
الفرق بين القابل للاتصال والقابل للتشغيل
المزامنة ، والميزات والمقارنات التي يعود تاريخها
بركة الموضوع
الحصول على نتائج التنفيذ بشكل غير متزامن
حزمة متزامنة
قفل
..
14. الشبكة
توفر Java أيضًا واجهات برمجة التطبيقات التي يمكنها تشغيل بروتوكول TCP وبروتوكول UDP مباشرة. عندما يكون من الضروري التأكيد على أداء الشبكة ، يمكن استخدام الاتصال مباشرة مع TCP/UDP. يمكنك رؤية استخدام واجهات برمجة التطبيقات هذه ذات الصلة عند عرض رمز المصدر لـ Tomcat وغيرها. ومع ذلك ، بشكل عام ، نادراً ما يتم استخدام TCP مباشرة ، ويتم استخدام الأطر مثل Mina و Netty للمعالجة. نظرًا لعدم وجود الكثير من التطوير في هذا المجال ، لن أدرجها بالتفصيل.
15. معالجة الوقت والتاريخ
لكل تطبيق تقريبًا ، لا يمكن تجنب معالجة الوقت والتاريخ ، ولكن استخدام واجهات برمجة التطبيقات المتعلقة بالوقت قبل JDK8 ليس ودودًا. في تلك الحقبة ، يمكن اختيار إطارات الوقت مثل Joda. بعد إصدار JDK8 ، يدمج API الجديد بشكل أساسي مزايا الأطر الأخرى ويمكن استخدامه مباشرة.
بالنسبة لمطوري Java ، يجب أن يكونوا بارعين في استخدام واجهات برمجة التطبيقات للتعامل مع الوقت والتواريخ.
لن يتم إدراج نقاط المعرفة المحددة بعد الآن. سأكتب مقالًا خاصًا في المستقبل لتلخيص استخدام API للوقت والتاريخ في JDK8.
16.xml تحليل/json تحليل
في الواقع ، لا يوجد أي من هذين المحتلين هو المحتوى في J2SE ، ولكن في التطوير اليومي ، لا يمكن فصل التفاعل مع البرامج وملفات التكوين الأخرى بشكل متزايد عن تحليل هذين التنسيقين.
ومع ذلك ، بالنسبة للمطور ، فإن القدرة على فهم بعض المبادئ وطرق التحليل الخاص بـ XML/JSON سيساعدك على اختيار الطريقة الصحيحة لك في كل سيناريو محدد لجعل برنامجك أكثر كفاءة وقوة.
XML: تحتاج إلى فهم المبادئ الأساسية لتحليل DOM و SAX التحليل والسيناريوهات المعمول بها كل منها
JSON: أنت بحاجة إلى فهم استخدام بعض أطر عمل JSON المستخدمة بشكل شائع ، مثل جاكسون ، فاستجسون ، GSON ، إلخ.
17. استخدام Maven
Maven ليس محتوى في Java ، لكن Maven ثوري ويجلب راحة كبيرة لتطوير Java. من مقدمة وإدارة التبعيات ، يمكن للتحديثات وإصدارات عمليات التطوير ، وحتى تحديثات الإصدار ، باستخدام Maven تبسيط التعقيد بشكل كبير في عملية التطوير ، وبالتالي توفير الكثير من الوقت. يمكن القول أن Maven أصبح التكوين القياسي لمطوري Java. لذلك أنا أيضًا أعتبر Maven نقطة معرفة أساسية لمطور Java. سأضيف بعض تجاربي ومهاراتي في استخدام Maven في المستقبل ، لذلك لن أخوض في التفاصيل هنا.
18. الأدوية الجيرية
هذا مفهوم جديد قدمه JDK5. إنه في الواقع سكر نحوي. سيكون مريحًا بعض الشيء عند كتابة رمز Java. بشكل عام ، لتطوير التطبيقات أو الأعمال ، يجب استخدامها ببساطة ، وقد لا يتم استخدامها بالضرورة لتحديد الأدوية الجيلية. ومع ذلك ، سيتم استخدام بعض المكونات العامة الأساسية. يمكنك إلقاء نظرة فاحصة على هذا الجزء عند الحاجة. بشكل عام ، يمكن استخدامه ببساطة.
19. العلامات
تم تقديمه أيضًا بعد JDK5. Spring هو إطار ممتاز ، وبدأ مع XML كملف التكوين القياسي. ومع ذلك ، بعد SPRING3 ، خاصة بعد ظهور قاع الربيع ، يوصى بشكل متزايد باستخدام التعليقات التوضيحية لتبسيط ملف تكوين XML. للمطورين ، يمكن أن يوفر الكثير من الوقت على تكوين XML. ومع ذلك ، فإن العيب هو أن التعليقات التوضيحية منتشرة في فصول مختلفة. على عكس XML ، يمكن أن يكون لها فهم عالمي وإدارة لجميع التكوينات ، لذلك لا توجد طريقة لاستبدال جميع XML بالكامل. للمطورين العاديين ، يمكنك فقط استخدام التعليقات التوضيحية. قد يحتاج بعض المطورين الذين لديهم مكونات عامة إلى فهم تعريف التعليقات التوضيحية وتنفيذها ، ويمكنك إلقاء نظرة فاحصة عند الحاجة إليها.
20.RMI
Remotemethodinvocation هي واجهة استدعاء عن بعد فريدة من نوعها للغة Java ، وهي بسيطة نسبيًا ومريحة للاستخدام. ومع ذلك ، عند الحالات المتقاطعة ، هناك حاجة إلى طرق أخرى مثل WebService لدعمها. بشكل عام ، لا تحتاج البرامج إلى استخدام RMI ، ولكن يمكن استخدامها في مواقف محددة. أنا في مشروع ، باستخدام RMI للتحكم في البداية والإيقاف عن بُعد للبرنامج.
21.jni
تتيح الواجهة الأصلية Java استدعاء طرق الواجهة المحلية في Java ، والتي تستخدم عمومًا لاتصال رمز C/C ++. تجدر الإشارة إلى أن مشكلة مسار تحميل ملف SO/DLL في Java ليست معقدة في استدعاء الواجهة نفسها ، ولكنها غالبًا ما تستغرق الكثير من الوقت لتحميل مكتبة الواجهة المحلية المطلوبة.
ما ورد أعلاه هو مجرد مقدمة موجزة لآرائي ومقدمات حول نقاط المعرفة Java الأساسية هذه والنقاط الفنية. هذه المحتويات مستمدة من بعض ملخص لاستخدامي لجافا على مر السنين. آمل أن أعطي بعض الخبرة لأولئك الذين تعرضوا للتو لجافا أو ينويون التطور من جافا. آمل أن أتعلم واستخدام جافا بشكل أكثر كفاءة وتجنب إضاعة الوقت الثمين. لا يزال هناك بعض المحتوى غير المكتمل في هذا ، وسيتم إضافتها من خلال المقالات المستقبلية. نظرًا لقدراتها الشخصية المحدودة ، بالطبع سيكون هناك بعض الأخطاء والإغفالات. مرحبًا بك لتصحيح لي ، ناقش معًا ، وتحسين هذه المقالة معًا ، على أمل أن يساعد الأشخاص المحتاجين حقًا.
الملخص أعلاه لنقاط المعرفة Java - بعض الاقتراحات للمبتدئين في Java (يجب قراءتها للمبتدئين) هي المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.