Home  >  Article  >  Java  >  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)

php是最好的语言
php是最好的语言Original
2018-07-26 14:09:541356browse

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:
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