知识回顾:八大基本数据类型,四大引用类型

八大基本数据类型:

  • 整数型(byte、short、int、long)

  • 浮点型(float、double)

  • 字符型(char)

  • 布尔型(boolean)

数据的默认值和占字节数:

类型

默认值

占字节

整数型(byte)

0

1

整数型(short)

0

2

整数型(int)

0

4

整数型(long)

0L

8

浮点型(float)

0.0f

4

浮点型(double)

0.0d

8

字符型(char)

‘\u0000’

2

布尔型(boolean)

false

1

装箱与拆箱:

装箱:是指基本数据类型转换为对应的包装类型, 例如:int转为为Integer包装类型

拆箱:是指包装类型转换为对应的基本数据类型,例如:Integer转换为int基本数据类型

四大引用类型:

  • 数组

  • 接口

  • 字符串

数据类型参数传递:

例:

public class DataType {
    public static void main(String[] args) {
        int var1 = 100;
        String var2 = "C++";
        String[] var3 = new String[]{"张三","王五"};

        System.out.println("var1: "+var1);
        System.out.println("var2: "+ var2);
        System.out.println("var3: "+ Arrays.toString(var3));
        System.out.println("var2地址值: "+var2.hashCode());
        System.out.println("var3地址值: "+var3.hashCode());

        new DataType().change(var1, var2, var3);

        System.out.println("===================方法后===================");
        System.out.println("var1: "+var1);
        System.out.println("var2: "+ var2);
        System.out.println("var3: "+ Arrays.toString(var3));
        System.out.println("var2地址值: "+var2.hashCode());
        System.out.println("var3地址值: "+var3.hashCode());
    }

    public void change(int var1, String var2, String[] var3){
        var1 = 500;
        var2 = "Java";
        var3[0] = "李四";

        System.out.println("===================方法中===================");
        System.out.println("var1方法内: "+var1);
        System.out.println("var2方法内: "+ var2);
        System.out.println("var3方法内: "+ Arrays.toString(var3));
        System.out.println("var2修改形参后的地址值: "+var2.hashCode());
        System.out.println("var3修改形参后的地址值: "+var3.hashCode());
    }
}

执行结果:

var1: 100
var2: C++
var3: [张三, 王五]
var2地址值: 65763
var3地址值: 940553268

===================方法中===================
var1方法内: 500
var2方法内: Java
var3方法内: [李四, 王五]
var2修改形参后的地址值: 2301506
var3修改形参后的地址值: 940553268

===================方法后===================
var1: 100
var2: C++
var3: [李四, 王五]
var2地址值: 65763
var3地址值: 940553268

总结:

1.当基本数据类型作为方法形参时,在方法内修改形参的值不影响实参的值。

2.当引用类型作为方法形参时,在方法内修改形参的地址(指向)不影响实参,因此形参变量和实参变量分别指向不同的堆区。

3.当引用类型作为方法形参时,在方法内修改形参的值影响实参的值,因此形参变量和实参变量共享同一块堆区。

参考文献:

Java引用类型参数传递(绝对看得懂)

Java基本数据类型(四类引用数据类型、八大数据类型)

猜你喜欢

转载自blog.csdn.net/ZWP_990527/article/details/128763858