Home Java javaTutorial The difference between int and Integer

The difference between int and Integer

Feb 17, 2020 pm 01:49 PM
int integer the difference

The difference between int and Integer

The difference between int and Integer

1. Integer is a wrapper class of int, and int is a basic data type of java

2. Integer variables must be instantiated before they can be used, while int variables do not.

3. Integer is actually a reference to an object. When a new Integer is created, a pointer is actually generated pointing to this object. ; while int directly stores data values ​​

4. The default value of Integer is null, and the default value of int is 0

Recommended learning: java tutorial

Extension:

Comparison between Integer and int

1. Since the Integer variable is actually a reference to an Integer object, the two are generated through new Integer variables are always unequal (because new generates two objects with different memory addresses).

Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.print(i == j); //false
Copy after login

2. When comparing Integer variables with int variables, as long as the values ​​​​of the two variables are equal, the result is true (because when the packaging class Integer is compared with the basic data type int, java will automatically unpack is int, and then the comparison actually becomes a comparison of two int variables)

Integer i = new Integer(100);
int j = 100;
System.out.print(i == j); //true
Copy after login

3. When the Integer variable generated by non-new is compared with the variable generated by new Integer(), the result is false. (Because the Integer variable generated by non-new points to an object in the Java constant pool, and the variable generated by new Integer() points to a newly created object in the heap, the two have different addresses in memory)

Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j); //false
Copy after login

4 . For two non-new generated Integer objects, when comparing, if the values ​​of the two variables are between -128 and 127, the comparison result is true. If the values ​​of the two variables are not in this range, the comparison result is false

Integer i = 100;Integer j = 100;
System.out.print(i == j); //trueInteger i = 128;
Integer j = 128;
System.out.print(i == j); //false
Copy after login

For the reason for item 4:
When java compiles Integer i = 100;, it will be translated into Integer i = Integer.valueOf(100);, and the Integer type in the java API The definition of valueOf is as follows:

public static Integer valueOf(int i){
    assert IntegerCache.high >= 127;
    if (i >= IntegerCache.low && i <= IntegerCache.high){
        return IntegerCache.cache[i + (-IntegerCache.low)];
    }
    return new Integer(i);
}
Copy after login

java will cache numbers between -128 and 127. When Integer i = 127, 127 will be cached, and Integer j = 127 will be written next time. When, it will be fetched directly from the cache, and it will not be new.

For moreprogramming learning courses, you can pay attention to the PHP Chinese website!​

The above is the detailed content of The difference between int and Integer. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

deepseek What is the difference between r1 and v3 version deepseek What is the difference between r1 and v3 version Feb 19, 2025 pm 03:24 PM

deepseek What is the difference between r1 and v3 version

Does Bitcoin have stocks? Does Bitcoin have equity? Does Bitcoin have stocks? Does Bitcoin have equity? Mar 03, 2025 pm 06:42 PM

Does Bitcoin have stocks? Does Bitcoin have equity?

Summary of FAQs for DeepSeek usage Summary of FAQs for DeepSeek usage Feb 19, 2025 pm 03:45 PM

Summary of FAQs for DeepSeek usage

What is the difference between pre-market and after-market trading? Detailed explanation of the differences between pre-market and after-market trading What is the difference between pre-market and after-market trading? Detailed explanation of the differences between pre-market and after-market trading Mar 03, 2025 pm 11:54 PM

What is the difference between pre-market and after-market trading? Detailed explanation of the differences between pre-market and after-market trading

Why is Bittensor said to be the 'bitcoin' in the AI ​​track? Why is Bittensor said to be the 'bitcoin' in the AI ​​track? Mar 04, 2025 pm 04:06 PM

Why is Bittensor said to be the 'bitcoin' in the AI ​​track?

Is there any difference between South Korean Bitcoin and domestic Bitcoin? Is there any difference between South Korean Bitcoin and domestic Bitcoin? Mar 05, 2025 pm 06:51 PM

Is there any difference between South Korean Bitcoin and domestic Bitcoin?

Vertical proxy: Application scenarios and interpretation of disruptive potential of encryption native proxy Vertical proxy: Application scenarios and interpretation of disruptive potential of encryption native proxy Mar 04, 2025 am 10:21 AM

Vertical proxy: Application scenarios and interpretation of disruptive potential of encryption native proxy

Pepe bought and sold out in a big way, is MUTM a smarter investment in 2025? Pepe bought and sold out in a big way, is MUTM a smarter investment in 2025? Mar 03, 2025 pm 07:09 PM

Pepe bought and sold out in a big way, is MUTM a smarter investment in 2025?

See all articles