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
9513


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

permanent link

answered 01 Jul, 00:34

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
1.1k18

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

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

(01 Jul, 10:24) 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:

×215

question asked: 29 Jun, 06:23

question was seen: 225 times

last updated: 01 Jul, 12:30