1. Basic data types
#byte
: The smallest data type in Java, occupying 8 bits in memory (bit), i.e. 1 byte, value range -128~127, default value 0
short
: short integer, occupies 16 bits in memory, i.e. 2 words Section, value range -32768~32717, default value 0
int
: integer type, used to store integers, occupies 32 bits in memory, that is, 4 bytes, value Range -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 float type is valid The decimal point has only 6~7 digits), the default value is 0
double
: double-precision floating point type, used to store numbers with decimal points, occupying 64 bits in memory, that is, 8 Byte, 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
Recommended related learning videos:java online video
2. Reference data types
Class, interface type, array type, enumeration type, Annotation type.
Difference:
When the basic data type is created, a memory is allocated to it on the stack, and the value is stored directly on the stack.
When a reference data type is created, it must first allocate a piece of memory to its reference (handle) on the stack, and the specific information of the object is stored on the heap memory, and then the reference on the stack points to the heap. The address of the object.
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 is:
1. First allocate a space for p in the stack memory;
2. Allocate a space for the Person object in the heap memory, and set the initial values "", 0 for its three attributes;
3. According to the definition of attributes in the Person class, assign values to the two attributes of the object;
4. Call the constructor and assign the two attributes to "Tom", 20 ; (Note that no connection has been established between p and the Person object at this time);
5. Assign the address of the Person object in the heap memory to p in the stack, which can be found by referencing (handle) p Detailed information about the objects in the heap.
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 program and are allocated by the compiler during compilation.
Heap area: Generally allocated and released by programmers, memory allocated by malloc series functions or new operator, its life cycle is 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: automatically allocated and released by the compiler to save local variables. The contents on the stack only exist within the scope of the function. When the function ends, these contents will be automatically destroyed. It is characterized by high efficiency. , but the space size is limited.
Literal constant area: Constant strings are placed here. It is released by the system after the program ends.
For more related articles and tutorials, please visit:Introduction to java programming
The above is the detailed content of Introduction to basic data types and reference data types in Java. For more information, please follow other related articles on the PHP Chinese website!