java基本数据类型和引用类型

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 都是指向一个实例对象。

原文地址:https://www.cnblogs.com/EtherealWind/p/15593707.html