Home Java Javagetting Started The difference between int and integer in java

The difference between int and integer in java

Nov 30, 2019 pm 05:24 PM
int integer java the difference

The difference between int and integer in java

1. Java basic data types and their encapsulation classes

The difference between int and integer in java

java Data types include basic data types and reference data types. In order to facilitate the processing of basic data types as objects, Java introduces encapsulation classes corresponding to basic data types. For example, the int encapsulation class is Integer.

Online teaching video sharing: java teaching video

2. java automatic unboxing and automatic packing

1. Automatic boxing

Autoboxing is actually converting basic data types into reference data types (objects)

2. Automatic unboxing

Automatic unboxing is actually converting reference data types into basic data types

The code is as follows:

    public static void main(String[] args) {
        Integer a = 1;//这里就用到了自动装箱;等同于Integer a = new Integer(1);

        int b = a - 1;//对象不能直接进行计算,所以这里有自动拆箱的操作,将a对象转换成基本数据类型,然后-1
        System.out.println(a);
        System.out.println(b);
    }
Copy after login

Print results:

1
0
Copy after login

3. The difference between int and Interger

From the above we can see the difference between int and Interger:

int is the basic data type, and Integer is the reference data type;

## The default value of #int is 0, and the default value of Integer is null;

int type directly stores values, and Integer needs to instantiate the object and point to the address of the object.

Speaking of this, do you think that’s it? In fact, there are some detailed differences between them: as follows

    public static void main(String[] args) {
        Integer a = new Integer(1);
        Integer b = new Integer(1);

        int c = 1;
        int d = 1;

        Integer e = 1;
        Integer f = 1;
        
        Integer g = 130;
        Integer h = 130;
        
        Integer i = new Integer(130);
        int j = 130;
    }
Copy after login

1: a == b? Nonsense, definitely not equal. The addresses of the two new objects are different.

2: c == d? This is also nonsense, the values ​​​​of basic data types must be equal.

3: The key question now is e == f? g == h?

The answer is: e == f; g != h.

Why does this happen? Because Integer g = 130 will be compiled into Integer.valueOf(130) when ava is compiled. This can be seen by decompiling the class file. It can be concluded from the Integer source code that the Integer.valueOf() method will cache the Integer between the values ​​-128~127, and will not create a new one, so e==f; when the value two is greater than 127 or less than - At 128, a new one will be created, so g != h.

The valueOf method of Integer is as follows:

    public static Integer valueOf(int i) {
         //IntegerCache.low == -128  ;IntegerCache.high == 127
         //当数值大于-128小于127时,进行缓存;否则重新new一个。
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }
Copy after login
4: Does c == e, i == j?

The answers are all equal. Because when comparing encapsulated classes with basic data types, Java will automatically unbox them and then compare whether the values ​​are equal.

Summary:

1. They are all encapsulated classes and are all derived from new, so they are definitely not equal. Because the memory addresses of the objects are different.

2. They are all encapsulated classes and are not derived from new. If the value is between -128~127, it is equal, otherwise it is not equal.

3. If the encapsulated class and the basic type are compared, as long as the values ​​​​are equal, they are equal, otherwise they are not equal. Because there will be an automatic unboxing operation when comparing the encapsulated class with the basic data type.

4. They are all basic data types. If the values ​​are equal, they are equal; otherwise, they are not equal.

For more related tutorials, please visit:

Getting Started with Java

The above is the detailed content of The difference between int and integer in java. 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 AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

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)

The difference between H5 and mini-programs and APPs The difference between H5 and mini-programs and APPs Apr 06, 2025 am 10:42 AM

H5. The main difference between mini programs and APP is: technical architecture: H5 is based on web technology, and mini programs and APP are independent applications. Experience and functions: H5 is light and easy to use, with limited functions; mini programs are lightweight and have good interactiveness; APPs are powerful and have smooth experience. Compatibility: H5 is cross-platform compatible, applets and APPs are restricted by the platform. Development cost: H5 has low development cost, medium mini programs, and highest APP. Applicable scenarios: H5 is suitable for information display, applets are suitable for lightweight applications, and APPs are suitable for complex functions.

How to set password protection for export PDF on PS How to set password protection for export PDF on PS Apr 06, 2025 pm 04:45 PM

Export password-protected PDF in Photoshop: Open the image file. Click "File"&gt; "Export"&gt; "Export as PDF". Set the "Security" option and enter the same password twice. Click "Export" to generate a PDF file.

Why do you need to call Vue.use(VueRouter) in the index.js file under the router folder? Why do you need to call Vue.use(VueRouter) in the index.js file under the router folder? Apr 05, 2025 pm 01:03 PM

The necessity of registering VueRouter in the index.js file under the router folder When developing Vue applications, you often encounter problems with routing configuration. Special...

How to use XPath to search from a specified DOM node in JavaScript? How to use XPath to search from a specified DOM node in JavaScript? Apr 04, 2025 pm 11:15 PM

Detailed explanation of XPath search method under DOM nodes In JavaScript, we often need to find specific nodes from the DOM tree based on XPath expressions. If you need to...

PHP vs. Python: Understanding the Differences PHP vs. Python: Understanding the Differences Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

The difference in output results of console.log: Why do the same variables have different printing methods but different results? The difference in output results of console.log: Why do the same variables have different printing methods but different results? Apr 04, 2025 am 11:48 AM

In-depth discussion of the differences in console.log output in this article will analyze the reasons why the output results of console.log function in a piece of code are different. Code snippets involve URL parameter resolution...

What are the different ways of promoting H5 and mini programs? What are the different ways of promoting H5 and mini programs? Apr 06, 2025 am 11:03 AM

There are differences in the promotion methods of H5 and mini programs: platform dependence: H5 depends on the browser, and mini programs rely on specific platforms (such as WeChat). User experience: The H5 experience is poor, and the mini program provides a smooth experience similar to native applications. Communication method: H5 is spread through links, and mini programs are shared or searched through the platform. H5 promotion methods: social sharing, email marketing, QR code, SEO, paid advertising. Mini program promotion methods: platform promotion, social sharing, offline promotion, ASO, cooperation with other platforms.

PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

See all articles