java数据类型分为两种:
- 基本数据类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。
- 引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。
- 主要区别:基本数据类型分配在栈上,而引用数据类型是分配在堆上的。
- 图解如下:
第一部分:
八大基本数据类型,其中包括六种数字类型(四个整数型(byte,short,int,long),两个浮点型(float,double),一种字符型char),一种布尔型(boolean))。
1. byte:
byte数据类型是8位
1字节
最小值 -128 -2^7
最大值 127 2^7-1
默认值 0
包装类 java.lang.Byte
例子:byte a = 100;
2. short:
short数据类型是16位
2字节
最小值 -32768 -2^15
最大值 32767 2^15- 1
默认值 0
包装类 java.lang.Short
例子:short a = 100;
3. int:
int数据类型是32
占3字节
最小值 -2,147,483,648 -2^31
最大值 2,147,485,647 2^31- 1
默认值 0
包装类 java.lang.Integer
例子:int a = 100;
4. long:
long数据类型是64位
4字节
最大值 -9,223,372,036,854,775,808 -2^63
最小值 9,223,372,036,854,775,807 2^63-1
默认值 0L
包装类 java.lang.Long
例子:long a = 100L;
5. float:
float数据类型是单精度,32位
4字节
最小值 -3.40E+38 -2^128
最大值 3.40E+38 2^128-1
默认值 0.0f
包装类 java.lang.Float
例子:float a = 1.2f;
6. double:
double数据类型是双精度,64位
8字节
默认值 0.0d
包装类 java.lang.Double
例子:double a = 1.23;
7. char:
char类型是单一的16位Unicode字符
2字节
包装类 java.lang.Character
例子:char a = ‘a’
8. boolean:
boolean数据类型是16位
2字节
包装类 java.lang.Boolean
例子:boolean a = false;
第二部分:
引用数据类型:
引用数据类型分为三种:类,接口,数组
引用类型变量都属于对象类型,如类,数组,字符串等都是引用类型变量。
比如String s = new String();就是在栈内存中分配一块空间s,
在堆内存中new了一个String类型的空间,栈内存中s指向堆内存的那块空间。
so,引用类型变量里面存放的是数据的地址,就是按照内存地址查询内容。