public class Test
{

    public static void main(String[] args) 
    {
        // block 1
        {
            Integer i1 = 127;

            Integer i2 = 127;

            System.out.println(i1 == i2);
            // Output: ture
        }

        // block 2
        {
            Integer i1 = 128;

            Integer i2 = 128;

            System.out.println(128 == i2);
            // Output: true
        }

        // block 3
        {
            Integer i1 = 128;

            Integer i2 = 128;

            System.out.println(i1 == i2);
            // Output: false
        }

    }

}

ব্লক ৩ এর প্রিন্ট স্টেটমেন্ট false প্রিন্ট করতেছে কেন? এইখানে তো অটো আনবক্সিং হওয়ার কথা আর true প্রিন্ট করার কথা।

asked 29 Jun, 06:23

sksuranjit's gravatar image

sksuranjit
7511


দুটোর মধ্যে একটি প্রিমিটিভ ও একটি রেফারেন্স টাইপ হলে আনবক্সিং/অটোবক্সিং হবে। ব্লক ৩-এ দুটি রেফারেন্স টাইপের তুলনা হচ্ছে, তাই কোনো আনবক্সিং/অটোবক্সিং হবে না। রেফারেন্স যেহেতু আলাদা, তাই আউটপুট false। ব্লক ১-এর মান সত্য হয়েছে কারণ ইন্টিজারের ক্ষেত্রে -128 থেকে 127 পর্যন্ত বিশেষ ব্যবস্থা করে রাখা আছে।

permanent link

answered 2 days ago

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
1.0k18

"ইন্টিজারের ক্ষেত্রে -128 থেকে 127 পর্যন্ত বিশেষ ব্যবস্থা করে রাখা আছে।"

কেন রাখা আছে? এই সম্পর্কে আরো একটু বলা যায়?

(2 days ago) sksuranjit
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×212

question asked: 29 Jun, 06:23

question was seen: 40 times

last updated: 2 days ago