যদি গাণিতিক ক্রিয়াকলাপগুলিতে short
স্বয়ংক্রিয়ভাবে পদোন্নতি হয় int
তবে তা কেন:
short thirty = 10 * 3;
short
ভেরিয়েবলের আইনী অ্যাসাইনমেন্ট thirty
?
ঘুরেফিরে, এই:
short ten = 10;
short three = 3;
short thirty = ten * three; // DOES NOT COMPILE AS EXPECTED
ঠিক এটার মতন:
int ten = 10;
int three = 3;
short thirty = ten * three; // DOES NOT COMPILE AS EXPECTED
সংকলন করে না কারণ প্রত্যাশা অনুযায়ী ingালাই ছাড়াই কোনও int
মান নির্ধারণের short
অনুমতি নেই।
সংখ্যাগত আক্ষরিক সম্পর্কে কি বিশেষ কিছু চলছে?
10 * 3
ফলাফলের সাথে ভেরিয়েবল গণনা করে এবং সূচনা করে। আপনার কর্মহীন উদাহরণে গণনাটি রানটাইমে ঘটে যেখানে জেভিএম সংক্ষিপ্ত কাস্ট করে।
final int ten = 10; final int three = 3; short thirty = ten * three;
জরিমানা সংকলন।
If short is automatically promoted to int in arithmetic operations
- এটি প্রাসঙ্গিক নয়। আমরাও 10
না 3
হাফপ্যান্ট করছি লিটারেল হয় না এবং তারা উন্নীত হয়, তারা।
10
এবং সংকলক দ্বারা s 3
হিসাবে মূল্যায়ন করা int
হয়?
short thirty = 10 * 3;
সম্ভবতshort thirty = 30;
সংকলক দ্বারা প্রতিস্থাপিত হয় যা একটি বৈধ বিবৃতি then (যদিও আমাকে প্রাসঙ্গিক জেএলএস বিভাগটি সন্ধান করতে হবে)।