لماذا لا توجد بايت أو قصيرة حرفية في جافا ؟

StackOverflow https://stackoverflow.com/questions/317816

  •  11-07-2019
  •  | 
  •  

سؤال

أنا يمكن أن تخلق الحرفي طويلة عن طريق إلحاق L إلى القيمة ؛ لماذا لا يمكنني إنشاء الحرفي قصيرة أو بايت مماثلة في بعض الطريق ؟ لماذا هل أنا بحاجة إلى استخدام الباحث الحرفي مع المدلى بها ؟

و إذا كان الجواب "لأنه لا يوجد قصيرة الحرفي في ج", ثم لماذا لا توجد قصيرة حرفية في C ؟

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

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

المحلول

في C، int على الأقل كان من المفترض أن يكون "الطبيعي" حجم كلمة وحدة المعالجة المركزية وlong ربما يعني أن تكون "أكبر الطبيعي" حجم الكلمة (غير متأكد في هذا الجزء الأخير، ولكن من شأنه أن يفسر أيضا لماذا int وlong لها نفس الحجم على x86) و.

والآن، تخميني هو: لint وlong، وهناك تمثيل الطبيعي الذي يناسب تماما في سجلات الجهاز. في معظم وحدات المعالجة المركزية ومع ذلك، فإن أنواع أصغر byte وسوف short يجب أن تكون مبطنة إلى int على أي حال قبل استخدامها. إذا كان هذا هو الحال، هل يمكن أن يكون كذلك يلقي.

نصائح أخرى

وأظن أنها حالة "لا تضيف شيئا إلى اللغة إلا أنه يضيف قيمة حقيقية" - وكان ينظر إليه على أنه يضيف قيمة تذكر بما فيه الكفاية للا يستحق كل هذا العناء. كما كنت قد قلت، فإنه من السهل للحصول على جولة، وبصراحة انها نادرا الضروري على أي حال (فقط للتوضيح).

ووينطبق الشيء نفسه في C #، ولم يسبق لي ان غاب بشكل خاص في أي لغة. ما أقوم به تفوت في جاوة هو نوع بايت غير الموقعة:)

وهناك سبب آخر قد يكون أن JVM لا يعرف باختصار وبايت. ويتم كل الحسابات وتخزين مع [إينتس]، يتوق، يطفو والزوجي داخل JVM.

هناك العديد من الأشياء في الاعتبار.

1) كما نوقش أعلاه JVM لا يوجد لديه مفهوم بايت أو قصيرة أنواع.عموما هذه الأنواع لا يتم استخدامها في حساب في JVM ؛ لذلك يمكن للمرء أن أعتقد أنه سيكون هناك أقل استخدام هذه حرفية.

2) تهيئة بايت و قصيرة المتغيرات ، إذا كان الباحث التعبير مستمرة في السماح مجموعة من نوع هو يلقي ضمنا على نوع الهدف.

3) يمكن للمرء دائما يلقي الحرفي السابق (قصيرة)10

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