Home Java javaTutorial JAVA basics: two types that are often confused (basic data and reference data)

JAVA basics: two types that are often confused (basic data and reference data)

Jul 26, 2018 pm 02:09 PM

When learning the basics of JAVA, I believe everyone, like me, always confuses basic data types and reference data types. How to distinguish them? I have summarized their respective characteristics for your reference.

1. Basic data types

byte: The smallest data type in Java, occupying 8 bits (bit) in memory, that is, 1 bytes, the value range is -128~127, the default value is 0

short: short integer, occupies 16 bits in memory, that is, 2 bytes, the value range is - 32768~32717, default value 0

int: Integer type, used to store integers, occupies 32 bits internally, that is, 4 bytes, the value range is -2147483648~2147483647, Default value 0

long: long integer, occupies 64 bits in memory, that is, 8 bytes -2^63~2^63-1, default value 0L

float: Floating point type, occupies 32 bits in memory, that is, 4 bytes, used to store numbers with decimal points (the difference from double is that the valid decimal point of the float type is only 6~7 digits ), default value 0

double: double-precision floating point type, used to store numbers with decimal points, occupying 64 bits in memory, that is, 8 bytes, default value 0

char: Character type, used to store a single character, occupies 16 bits, that is, 2 bytes, the value range is 0~65535, the default value is empty

boolean: Boolean type, occupies 1 byte, used to determine true or false (only two values, namely true, false), the default value is false

two. Reference data type

Class

Interface type

Array type

Enumeration type

Annotation type

3. Difference

When the basic data type is created, a piece of memory is allocated to it on the stack, and the value is stored directly on the stack.

Reference data typeWhen it is created, its reference (handle) must first be allocated a piece of memory on the stack, and the specific information of the object is stored on the heap memory, and then the stack The above reference points to the address of the object in the heap.

For example, there is a class Person, with attributes name, age, and a constructor method with parameters,

Person p = new Person("zhangsan",20);

The specific creation process in memory:

1. First allocate a space for its p in the stack memory;

2. Allocate a space for the Person object in the heap memory and assign it to Set the initial value of the three attributes to "", 0;

3. According to the definition of the attributes in the Person class, assign values ​​to the two attributes of the object;

4. Call the constructor , assign the values ​​​​to the two attributes as "Tom", 20; (note that there is no connection between p and the Person object at this time);

5. Assign the address of the Person object in the heap memory to the stack The p in; the specific information of the object in the heap can be found by referencing (handle) p.

4. Related knowledge

Static area

Save automatic global variables and static variables (including static global and local variables ). The contents of the static area exist throughout the life cycle of the entire program and are allocated by the compiler during compilation.

Heap area

is generally allocated and released by the programmer. The memory allocated by the malloc series of functions or the new operator has its life cycle determined by free or delete. It exists until the program ends and is released by the OS. It is characterized by flexible use and relatively large space, but it is prone to errors.

Stack area

is automatically allocated and released by the compiler to save local variables. The content on the stack is only in Exists within the scope of the function. When the function ends, these contents will be automatically destroyed. It is characterized by high efficiency, but limited space.

Literal constant area

This is where the constant string is placed. It is released by the system after the program ends.

Related recommendations:

JAVA Tutorial | Chapter 2 Basic Data Types

Detailed explanation of the difference between basic data types and reference types in JavaScript

Video Tutorial:

Passing Basic Data Types as Parameters - Latest Java Complete

The above is the detailed content of JAVA basics: two types that are often confused (basic data and reference data). 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)

Hot Topics

Java Tutorial
1662
14
PHP Tutorial
1262
29
C# Tutorial
1235
24
Is the company's security software causing the application to fail to run? How to troubleshoot and solve it? Is the company's security software causing the application to fail to run? How to troubleshoot and solve it? Apr 19, 2025 pm 04:51 PM

Troubleshooting and solutions to the company's security software that causes some applications to not function properly. Many companies will deploy security software in order to ensure internal network security. ...

How do I convert names to numbers to implement sorting and maintain consistency in groups? How do I convert names to numbers to implement sorting and maintain consistency in groups? Apr 19, 2025 pm 11:30 PM

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

How to simplify field mapping issues in system docking using MapStruct? How to simplify field mapping issues in system docking using MapStruct? Apr 19, 2025 pm 06:21 PM

Field mapping processing in system docking often encounters a difficult problem when performing system docking: how to effectively map the interface fields of system A...

How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log? How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log? Apr 19, 2025 pm 11:45 PM

Start Spring using IntelliJIDEAUltimate version...

How to safely convert Java objects to arrays? How to safely convert Java objects to arrays? Apr 19, 2025 pm 11:33 PM

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

How to elegantly obtain entity class variable names to build database query conditions? How to elegantly obtain entity class variable names to build database query conditions? Apr 19, 2025 pm 11:42 PM

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

How to use the Redis cache solution to efficiently realize the requirements of product ranking list? How to use the Redis cache solution to efficiently realize the requirements of product ranking list? Apr 19, 2025 pm 11:36 PM

How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products? E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products? Apr 19, 2025 pm 11:27 PM

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...

See all articles