What are the differences between java integer and int?
Basics:
1. Int is a basic data type of java, and integer is a type of int Encapsulation class.
2. Integer variables must be instantiated before they can be used, but int variables do not.
3. Integer is actually a reference to an object. When new an integer object, a pointer is actually generated pointing to the object; while int directly stores data values.
4. The default value of Integer is null, and the default value of int is 0.
Extension:
1. Because the integer variable is actually a reference to the integer object, the two integer variables passed through new will never be equal (because the integer variable generated by new are two objects with different memory addresses).
Integer i = new Integer(100); Integer j = new Integer(100); System.out.print(i == j);//false
2. When an integer variable is compared with an int variable, as long as the values of the two variables are equal, the result is true, because integer is essentially a wrapper class of int. When two numbers are compared, java The integer will be automatically unpacked, so it is essentially a comparison of two int variables.
Integer i = new Integer(100); int j = 100; System.out.print(i == j);//true
3. When an Integer variable created by new is compared with an Integer variable not created by new, the result is false. Because variables created without new exist in the Java constant pool, and variables created with new point to newly created objects in the heap, the memory addresses of the two are different.
Integer i = new Integer(100); Integer j = 100; System.out.print(i == j);//false
4. When comparing two non-new Integer variables, if the values of the two variables are between -128 and 127, then the result is true, otherwise it is false.
For this strange result, java's explanation is as follows:
Integer i = new Integer(100);//在编译时会变成Integer i = Integer.ValueOf(100)
And the definition of Integer.valueOf() in the java API 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); }
That is, for Java will cache the number between -128~127, and the next time you assign a value to an Integer variable, if it is between -128~127 and has been cached, it will be called directly from the cache.
PHP Chinese website has a large number of free JAVA introductory tutorials, everyone is welcome to learn!
The above is the detailed content of What are the differences between java integer and int?. For more information, please follow other related articles on the PHP Chinese website!

There are subtle differences in Java's performance on different operating systems. 1) The JVM implementations are different, such as HotSpot and OpenJDK, which affect performance and garbage collection. 2) The file system structure and path separator are different, so it needs to be processed using the Java standard library. 3) Differential implementation of network protocols affects network performance. 4) The appearance and behavior of GUI components vary on different systems. By using standard libraries and virtual machine testing, the impact of these differences can be reduced and Java programs can be ensured to run smoothly.

Javaoffersrobustobject-orientedprogramming(OOP)andtop-notchsecurityfeatures.1)OOPinJavaincludesclasses,objects,inheritance,polymorphism,andencapsulation,enablingflexibleandmaintainablesystems.2)SecurityfeaturesincludetheJavaVirtualMachine(JVM)forsand

JavaScriptandJavahavedistinctstrengths:JavaScriptexcelsindynamictypingandasynchronousprogramming,whileJavaisrobustwithstrongOOPandtyping.1)JavaScript'sdynamicnatureallowsforrapiddevelopmentandprototyping,withasync/awaitfornon-blockingI/O.2)Java'sOOPf

JavaachievesplatformindependencethroughtheJavaVirtualMachine(JVM)andbytecode.1)TheJVMinterpretsbytecode,allowingthesamecodetorunonanyplatformwithaJVM.2)BytecodeiscompiledfromJavasourcecodeandisplatform-independent.However,limitationsincludepotentialp

Java'splatformindependencemeansapplicationscanrunonanyplatformwithaJVM,enabling"WriteOnce,RunAnywhere."However,challengesincludeJVMinconsistencies,libraryportability,andperformancevariations.Toaddressthese:1)Usecross-platformtestingtools,2)

JVM'sperformanceiscompetitivewithotherruntimes,offeringabalanceofspeed,safety,andproductivity.1)JVMusesJITcompilationfordynamicoptimizations.2)C offersnativeperformancebutlacksJVM'ssafetyfeatures.3)Pythonisslowerbuteasiertouse.4)JavaScript'sJITisles

JavaachievesplatformindependencethroughtheJavaVirtualMachine(JVM),allowingcodetorunonanyplatformwithaJVM.1)Codeiscompiledintobytecode,notmachine-specificcode.2)BytecodeisinterpretedbytheJVM,enablingcross-platformexecution.3)Developersshouldtestacross

TheJVMisanabstractcomputingmachinecrucialforrunningJavaprogramsduetoitsplatform-independentarchitecture.Itincludes:1)ClassLoaderforloadingclasses,2)RuntimeDataAreafordatastorage,3)ExecutionEnginewithInterpreter,JITCompiler,andGarbageCollectorforbytec


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Dreamweaver CS6
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SublimeText3 Linux new version
SublimeText3 Linux latest version

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft
