java的八个基本数据类型
byte、short、int、long、char、boolean、float、double
注意integer是int的封装类,是引用类型。int的默认值是0,integer的默认值是null。所以integer是能够区分0和null的区别的。一旦java看到null就表明该引用没有执行任何对象。
任何一个引用在使用前,必须为其指定一个对象,否则会报错。
基本数据类型在声明时系统就会为其自动分配空间,而引用类型声明时只是为其分配了引用的空间,需要通过实例化开辟出来的数据空间后才能赋值。
注意:数组对象也是一个引用对象,将一个数组复制给另一个数组只是复制了一个引用,所以通过某一个数组所做的修改,在另一个数组也能看见。
代码演示:
package com.shine; import java.util.Arrays; /** * @Author: Shine EtherealWind * @Date: create in 11:24 2021/11/17 */ public class UsualTest { public static void main(String[] args) { System.out.println("1.=====声明数组 arr,打印arr"); char[] arr = {'a','b','c','d','e','f','g'}; System.out.println("arr:"+ Arrays.toString(arr)); System.out.println("2.=====将数组arr复制给 bakarr,打印bakarr"); char[] bakarr = arr;//将数组arr复制给 bakarr System.out.println("bakarr:"+Arrays.toString(bakarr)); System.out.println("3.=====修改数组arr并且打印 bakarr"); arr[0] = 'A';//修改arr数组 System.out.println("bakarr:"+Arrays.toString(bakarr)); } }
执行结果:
从结果可以看见 代码中虽然改的是arr这个引用:
arr[0] = 'A';//修改arr数组
但是其复制的bakarr结果却变了。
由此可以得到声明时只是引用对象, arr 和bakarr 都是指向一个实例对象。