يمكن لجميع المشغلين تقريبًا العمل فقط على "بدائل". الاستثناءات هي "=" ، "==" و "! =" ، والتي تعمل على جميع الكائنات. بالإضافة إلى ذلك ، تدعم فئة السلسلة "+" و "+=".
يخزن النوع الأساسي القيمة العددية الفعلية. بدلا من الإشارة إلى كائن. لذلك عند تعيين القيم إليها ، يتم نسخ محتوى مكان واحد مباشرة إلى مكان آخر. على سبيل المثال ، إذا تم استخدام A = B لنوع البيانات الأساسي ، يتم نسخ محتوى B إلى A. إذا تم تعديل A ، فلن يتأثر B بهذا التعديل على الإطلاق. (في فكرة برمجة Java السابقة (2) ، نعلم أن النوع الأساسي يتم تخزينه في المكدس. بافتراض A = 4 ، إذا لم يكن هناك 4 في المكدس ، فسيتم فتح مساحة لجعل القيمة 4. بعد A = B ، يشير B أيضًا إلى 4 في المكدس. ب)
ومع ذلك ، عند "تعيين القيم" إلى كائن ، سيتغير الموقف. بادئ ذي بدء ، نعلم أن ما نعمل عليه حقًا عند تشغيل كائن هو إشارة إلى الكائن. لذلك إذا كان "تعيين كائن إلى كائن آخر" ، فهو يقوم بالفعل بنسخ "المرجع" من مكان إلى آخر. هذا يعني أنه إذا تم استخدام C = D على الكائن ، فسيشير كلا من C و D إلى الكائن الذي تم الإشارة إليه في الأصل فقط بواسطة D (كل من عناصر التحكم عن بُعد (المراجع) يمكن تشغيلها والضغط على مجموعة تلفزيون (كائن)).
أولوية:
| أولوية | الترابط | |
1 | مشغل لاحقة | []. () (استدعاء الوظيفة) | من اليسار إلى اليمين |
2 | مشغل مونولوجي | ! ~ ++ - +(معامل واحد) (معامل واحد) | من اليمين إلى اليسار |
3 | يخلق | جديد | من اليسار إلى اليمين |
4 | الضرب والانقسام | */ ٪ | من اليسار إلى اليمين |
5 | الإضافة والطرح | + - | من اليسار إلى اليمين |
6 | يحول | << >> >>>> | من اليسار إلى اليمين |
7 | العلاقة | <<= >> = مثيل | من اليسار إلى اليمين |
8 | متساوي | ==! = | من اليسار إلى اليمين |
9 | bitwise و | & & | من اليسار إلى اليمين |
10 | bitwise xor | ^ | من اليسار إلى اليمين |
11 | bitwise أو | | | من اليسار إلى اليمين |
12 | المنطق و | && | من اليسار إلى اليمين |
13 | منطقي أو | || | من اليسار إلى اليمين |
14 | حالة | ؟ : | من اليمين إلى اليسار |
15 | تكليف | = += -= *= /= ٪ = ^= << = >> = >>> = | من اليمين إلى اليسار |
(1) المهمة
يستخدم النوع الرئيسي "A = B" ، ويتم نسخ المحتوى الموجود في B إلى A. إذا تم تعديل A ، فلن يتأثر B بالتعديل على الإطلاق.
يتغير الموقف عندما يتم "تعيين" الكائن. عند تشغيل كائن ، فإن ما نعمل عليه حقًا هو مقبضه. لذلك إذا قمت بتعيين قيمة من كائن إلى آخر ، فإنه يقوم بالفعل بنسخ المقبض من مكان إلى آخر. هذا يعني أنه إذا تم استخدام "C = D" للكائن ، فسيشير C و D في النهاية إلى الكائن الذي يشير إليه فقط في المقام الأول.
قصيرة S1 = 1 ؛ S1 = S1 + 1 ؛ (نتيجة عملية S1+1 هي نوع int ، ونوع المصبوب مطلوب)
قصيرة S1 = 1 ؛ S1 += 1 ؛ (يمكن تجميعها بشكل صحيح) += مشغل دون مشكلة تحويل النوع
(2) عامل الحساب
عوامل الحساب Java: بالإضافة إلى علامة (+) ، ناقص علامة (-) ، علامة القسم (/) ، علامة الضرب (*) والمعدل (٪ ، الحصول على الباقي من قسم الصدفة). سوف تقسيم عدد صحيح قطع العشرية مباشرة ، بدلاً من تحمل.
(3) الزيادة التلقائية والانخفاض
بالنسبة للخلايا المسبقة و Pre-Increment (مثل ++ A أو-A) ، سيتم تنفيذ العملية أولاً وسيتم إنشاء القيمة.
لما بعد الدخل وما بعد المخلصة (مثل A ++ أو A--) ، سيتم إنشاء القيمة وسيتم تنفيذ العملية.
(4) المشغل العلائقي
تشمل المشغلين العلائقيين <،> ، <= ،> = ، = ،! =
تساوي ولا تساوي تطبيقها على جميع أنواع البيانات المضمنة ، ولكن المقارنات الأخرى لا تنطبق على أنواع منطقية.
لمقارنة ما إذا كان المحتوى الفعلي للكائنين هو نفسه ، يجب عليك استخدام الطريقة الخاصة المساواة () التي تنطبق على جميع الكائنات.
لا تنطبق طريقة متساوية () على "الأنواع الرئيسية". يمكن استخدام هذه الأنواع مباشرة مع == و! =.
الافتراضي لـ equals () هو مقبض المقارنة. لذلك ما لم تتغير متساوًا () في صفك الجديد ، فمن المستحيل إظهار السلوك الذي نريده
تنفذ معظم مكتبات فئة Java متساوية () ، لذلك تقارن بالفعل محتويات الكائنات بدلاً من مقابضها.
= = و! = يقارن مقبض الكائن ، وليس المحتوى الفعلي للكائن
(5) المشغل المنطقي
العوامل المنطقية && ، || ،! يمكن أن يولد قيمة منطقية
يمكن استخدام & && كمشغلين منطقيين "و" ، لكن && هو "دائرة قصيرة و". عند الحساب ، يتم الحكم على قيمة التعبير قبل الرمز لأول مرة. إذا كان يمكن تحديد قيمة التعبير بأكمله ، فإن تشغيل التعبير بعد الرمز لم يتم تنفيذه.
بالإضافة إلى ذلك ، ويمكن استخدامه كمشغل قليلا
(6) مشغل bitwise
bitwise والمشغل (&)
bitwise أو المشغل (|)
bitwise xor (^، xor)
Bitwise لا (~ ، وتسمى أيضًا المشغل "غير") ينتمي إلى مشغل أحادي ، مما يولد قيمة مقابل بت الإدخال.
(7) مشغل Shift
يمكن لمشغل التحول الأيسر (<<) نقل كائن التشغيل إلى اليسار إلى عدد البتات المحددة على يمين المشغل (تكملة 0 عند البت المنخفض).
يقوم مشغل التحول الأيمن الموقّع (>>) بنقل كائن التشغيل إلى اليمين عدد البتات المحددة على يمين المشغل. يستخدم مشغل التحول الأيمن الموقّع تمديد الإشارة: إذا كانت القيمة موجبة ، يتم إدراج 0 في الموضع العالي ؛ إذا كانت القيمة سالبة ، يتم إدخال 1 في الوضع العالي
مشغل التحول الأيمن غير موقعة (>>>) ، والذي يستخدم "تمديد الصفر": أدخل 0 في وضع عالي بغض النظر عن الإيجابية أو السلبية
(8) مشغل ثلاثي If-Else
تعبير منطقي؟ القيمة 0: القيمة 1: يتم حساب نتيجة "تعبير BOLEAN" ، ويتم حساب "Value 0" ، وإلا فإن "القيمة 1" محسوبة
(9) مشغل السلسلة +
int x = 0 ، y = 1 ، z = 2 ؛ system.out.println ("out:" + x + y + z) ؛هنا ، يحول برنامج التحويل البرمجي Java x و y و z إلى شكل سلسلة بدلاً من إضافتها معًا أولاً
عند استخدام "String +" ، إذا بدأ التعبير بسلسلة ، فسيتم تحويل جميع كائنات التشغيل اللاحقة إلى سلسلة.
لتوصيل سلسلة مع علامة "Plus" (باستخدام الإصدارات السابقة من Java) ، تأكد من التأكد من أن العنصر الأول هو سلسلة
(10) مشغل النمذجة (الممثلون)
بالنسبة لعمليات مثل "تضييق التحويل" (أنواع البيانات التي يمكن أن تستوعب المزيد من المعلومات وتحويلها إلى أنواع أصغر ، مثل int إلى القصور) ، قد تواجه خطر فقدان المعلومات. في هذه المرحلة ، سوف يجبرنا المترجم على جعل أشكالًا واضحة
من أجل "التحويل المتسع" ، ليست هناك حاجة إلى تشكيلها بشكل صريح ، لأن النوع الجديد يمكن أن يستوعب بالتأكيد النوع الأصلي من المعلومات ولن يتسبب في أي خسارة في المعلومات
لا تسمح القيم المنطقية (bolleans) بأي معالجة للتصميم على الإطلاق ، ويمكن تشكيل أي أنواع رئيسية أخرى معًا.
بعد تشكيل التعويم أو القيمة المزدوجة في قيمة عدد صحيح ، يكون الجزء العشري دائمًا "مقطوعًا" دون أي حمل.
كم يساوي Math.round (11.5)؟ كم يساوي Math.round (-11.5)؟
Math.round(11.5)==12 Math.round(-11.5)==-11
تقوم طريقة المستديرة بإرجاع عدد صحيح طويل الأقرب إلى المعلمة. بعد إضافة 1/2 إلى المعلمة ، ابحث عن الأرضية.
لخص
ما سبق يدور حول هذا المقال الذي يناقش مشغلي Java وأولوياتهم ، وآمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى هذا الموقع:
مبدأ خوارزمية مطابقة السلسلة متعددة الأرقام ورمز تنفيذ Java
شرح مفصل لكيفية استخدام مشغلي وظائف Rxjava
مناقشة موجزة حول التحويل بين صفائف السلسلة والسلاسل والتشكيل في جافا
إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!