java的数据类型分两大类:
基本数据类型
基本类型是通过诸如 int a = 5; long b = 6L;的形式来定义的,称为自动变量,自动变量存放的是字面值,不是类的实例,它存放在内存的堆栈中,数据大小和生存期必须是确定的,存取速度比较快,在堆栈中的字面值可以共享,也就是说我们定义一个int a = 5;然后又定义了一个int b = 5;这时a与b在内存中指向的是同一个字面常量。
四类八种
四类:整形、浮点型、布尔型、字符型
八种:
- 整数型 (取值范围)
- 字节型byte(1个字节)(-128~127) 短整型short(2个字节)(-32768~32767) 整形int(4个字节)(一般默认)(-21亿~21亿) 长整型long(8个字节)( )
- 浮点型
- float(单精度浮点数) (4个字节) double(双精度浮点数)(8个字节)(一般默认)
- 字符型
- char(字符型)(2个字节)
- 布尔型
- boolean(1个字节)(只有两个结果true或者false)
8种基本类型在java中都有对应的封装类型,也就是引用类型:
整数类型 Byte、Short、Integer(-128~127)、Long
浮点数类型 Float、Double
字符型 Character
布尔类型 Boolean
在参数传递时,基本类型都是传值,也就是传递的都是原变量的值得拷贝,改变这个值不会改变原变量
引用数据类型
除了基本数据就是引用数据类型
基本数据类型加上[] 就变成引用数据类型
类、接口、数组
引用类型一般是通过new关键字来创建,比如Integer num = new Integer(3);它存放在内存的堆中,可以在运行时动态的分配内存大小,生存期也不必事先告诉编译器,当引用类型变量不被使用时,Java内部的垃圾回收器GC会自动回收走。引用变量中存放的不是变量的内容,而是存放变量内容的地址。
引用类型传递的是地址,也就是参数与原变量指向的是同一个地址,所以如果改变参数的值,原变量的值也会改变