عبدالوهاب العليوي | Abdulwahab Al-Alawi
267 subscribers
58 photos
3 files
12 links
هنا نحكي عن البرمجة، التقنية، الأدوات، وأشياء تهم كل مبرمج بطريقة بسيطة وممتعة.
Download Telegram
مقال جداً رائع عن كيفية تخزين الكائنات في جافا 👆👆
1
🔴 أنواع البيانات في جافا (java data type)

تعتبر لغة البرمجة جافا لغة برمجية من النوع الثابت اي أن انواع المتغيرات تعرف وقت الترجمة.

- يعمل المترجم في جافا على معرفة نوع كل متغير ويفرض الاستخدام الصحيح للمتغيرات وقت الترجمة.

- أنواع البيانات في Java ذات أحجام وقيم مختلفة يمكن تخزينها في متغير يتم إجراؤه وفقًا الظروف للتعامل مع سيناريوهات أو متطلبات بيانات مختلفة.


لماذا أنواع البيانات مهمة في جافا؟
أنواع البيانات مهمة في Java للأسباب التالية :

. كفاءة الذاكرة : اختيار النوع الصحيح (byte مقابل int) يحفظ الذاكرة.

الأداء : تقلل الأنواع المناسبة من أخطاء وقت التشغيل.

وضوح الكود : تجعل الكتابة الصريحة التعليمات البرمجية أكثر قابلية للقراءة.
_

- فئات نوع بيانات جافا

تحتوي Java على فئتين يتم فيه فصل أنواع البيانات.

1.نوع البيانات البدائية(Primitive Data Type)

هذه هي اللبنات الأساسية التي تخزن القيم البسيطة مباشرة في الذاكرة. أمثلة على أنواع البيانات البدائية:
.boolean
.char
.byte
.short
.int
.long
.float
.double


2.أنواع البيانات غير البدائية(non-primitive data type)

هذه هي أنواع المراجع التي تخزن عناوين الذاكرة للكائنات. أمثلة على أنواع البيانات غير البدائية:
. String
. Array
. Class
. Interface
. Object


📚 تابع القناة لمزيد من دروس Java
بشكل مبسّط وسلس!

#Java #برمجة #تعلم_البرمجة #DataTypes #Coding
🔥1
if-else Statement Execution flow.
nested-if Statement Execution Flow.
لماذا نقوم بتقسيم الكود إلى دوال ؟

يُحسّن تقسيم الكود إلى دوال منفصلة قابلية القراءة وإعادة الاستخدام والصيانة.

إعادة الاستخدام: اكتب الكود مرة واحدة، واستخدمه عدة مرات دون تكرار، مما يزيد من قابلية إعادة استخدامه.

سهولة القراءة: تُسهّل الطرق المُسمّاة الأصغر قراءة الكود وفهمه.

سهولة الصيانة : يُسهّل تنظيم الكود في طرق إصلاح الأخطاء أو تحديثه.

الاختبار : يُمكن اختبار الطرق بشكل مستقل، مما يُحسّن موثوقية الكود ويُسهّل تصحيح الأخطاء.
أي من التالي يُستخدم لإنهاء تنفيذ الدالة؟
Anonymous Quiz
19%
A) Stop
35%
B) break
29%
C) exit
18%
D) return
كورسات مجانية في هذه المجالات لمن يريد التعلم 👇

1. Artificial Intelligence + Data Analyst 2. Machine Learning + Data Science
3. Cloud Computing + Web Dev
4. Ethical Hacking + Hacking
5. Data Analytics + DSA
6. AWS Certified + IBM COURSE
7. Data Science + Deep Learning
8. BIG DATA + SQL COMPLETE COURSE
9. Python + OTHERS
10 MBA + HANDWRITTEN NOTES

Link ⤵️


https://drive.google.com/drive/mobile/folders/1if09a9QyNfBRlAKey7If5preZ3BswudZ
اذا تكرمتم انشروا رابط القناة لكي تعم الفائدة .
Which of the following is NOT an OOP concept in Java?
Anonymous Quiz
12%
A) Encapsulation
12%
B) Inheritance
38%
C) Polymorphism
38%
D) Compilation
👍1🔥1
# *🧠 المفاهيم الأساسية في جافا التي يجب أن تعرفها* ☕️

## 1. البرمجة الكائنية (OOP)
جافا تعتمد بالكامل على البرمجة الكائنية، باستخدام الفئات والكائنات.
- التغليف: تجميع البيانات والأساليب معًا
- الوراثة: فئة ترث من فئة أخرى
- التعددية الشكلية: تحميل وتجاوز الأساليب
- التجريد: إخفاء التنفيذ المعقد

## 2. إدارة الذاكرة
- جمع القمامة التلقائي عبر JVM
- مناطق الذاكرة: Heap، Stack، منطقة الأسلوب، إلخ.
- استخدام finalize() للتنظيف (على الرغم من أنه مُهمل في الإصدارات الجديدة)

## 3. إطار المجموعات
- الواجهات: List، Set، Map، Queue
- التطبيقات: ArrayList، HashSet، HashMap
- أساليب مفيدة للبحث، الفرز، والتكرار

## 4. معالجة الاستثناءات
- استخدام try-catch-finally للأخطاء في وقت التشغيل
- الاستثناءات المفحوصة مقابل الاستثناءات غير المفحوصة
- إنشاء استثناءات مخصصة عن طريق توسيع Exception أو RuntimeException

## 5. الإدخال/الإخراج للملفات مع java.io و java.nio
- استخدام FileReader و BufferedReader للقراءة
- Files و Paths من NIO للعمليات الحديثة والسريعة

## 6. تعدد المهام والتزامن
- استخدام فئة Thread أو تنفيذ Runnable
- التزامن باستخدام synchronized و Lock
- إطار العمل Executors لإدارة تجمعات الخيوط

## 7. ميزات جافا 8
- اللامدا: (a, b) -> a + b
- التدفقات: معالجة بيانات قوية
- Optional: التعامل مع القيم الفارغة بأمان
- الواجهات الوظيفية: Predicate، Function، إلخ.

## 8. تفاصيل JVM
- تحويل بايت كود إلى كود آلة في وقت التشغيل
- استخدام المترجم JIT للأداء
- يقوم Classloader بتحميل ملفات .class في وقت التشغيل

## 9. الكلمات الرئيسية والمعدلات
- static، final، abstract، transient، volatile
- this، super، instanceof – غالبًا ما تُطرح في المقابلات

## 10. أنماط التصميم (الأساسيات)
- Singleton
- Factory
- Builder
- Observer

#تعلم_البرمجة
What is the default value of an integer array in Java?
Anonymous Quiz
18%
A) null
68%
B) 0
9%
C) garbage value
5%
C) depends on JVM
for (int i = 0; i < 5; i++) {
if (i == 3)
continue;
System.out.print(i + " ");
}
إذا كنت تعمل في مجال التكنولوجيا أو تخطط للانتقال إليه، فستجد موردًا واحدًا على الأقل مفيدًا.

إليك محرك موارد مجاني بسعة 500 تيرابايت يحتوي على دروس تعليمية + كتب + دورات + تدريبات + موارد تعليمية باللغات التالية:


Data science,
Artificial Intelligence,
AWS Certification,
Cloud Ops - GCP, Azure, AWS,
BIG DATA,
Data Analytics,
BI,
IT Support,
MBA,
Machine Learning,
Deep Learning,
Ethical Hacking,
SPSS,
Statistics,
Learning language resources ( English , French , German)


You will learn to stupor. ⬇️
You will learn to stupor.

https://drive.google.com/drive/folders/1CgN7DE3pNRNh_4BA_zrrMLqWz6KquwuD
4
التسميات الصحيحة في الكود البرمجي

بسم الله الرحمن الرحيم

الأسماء موجودة في كل مكان في الكود المتغيرات، الدوال، الكلاسات، الحزم، الملفات…
واختيار اسم جيد يعني أن الكود سيكون واضح وسهل القراءة، بينما الأسماء السيئة تجعل الكود غامض وصعب الفهم لك او لغيرك من المبرمجين.

في كتاب Clean Code ذكر الكاتب (Robert C. Martin) عشر قواعد مهمة لاختيار أسماء صحيحة:

1. Use Intention-Revealing Names
2. Avoid Disinformation
3. Make Meaningful Distinctions
4. Use Pronounceable Names
5. Use Searchable Names
6. Avoid Encodings
7. Hungarian Notation (Don’t)
8. Class Names vs Method Names
9. Don’t Be Cute
10. Pick One Word per Concept

---

القاعدة الأولى: Use Intention-Revealing Names

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

ولكي تجعل الأسماء تعبر عن نيتها يجب عليك جعلها تجيب عن هذه الأسأله :

ما سبب وجوده؟

ماذا يفعل؟

كيف يتم استخدامه؟

أنظر إلى هذا المثال السيء :
int d;

هنا القارئ سيسأل: هل d تعني يوم؟ مدة؟ عدد؟

اما في هذا المثال الأفضل
int elapsedTimeInDays;     // الوقت المنقضي بالأيام
int daysSinceCreation; // عدد الأيام منذ الإنشاء
int daysSinceModification; // عدد الأيام منذ التعديل
int fileAgeInDays; // عمر الملف بالأيام

من النظرة الأولى، أي شخص يقرأ الكود سيفهم الغرض مباشرة بدون الحاجة إلى شرح إضافي.

الخلاصة الاسم الجيد مثل تعليق مدمج داخل الكود يعبر يكشف الغرض والنية من وجود الكود


بقية القواعد سوف نشرحها في منشور آخر
#cleancode
3