java之数据类型

基本数据类型

8大4类基本数类型
在这里插入图片描述
基本数据类型的特点:

  • 创建时在内存的栈上开辟一个空间存储。
  • 赋值操作时会进行值拷贝。
  • 给函数传参时是值传递。

引用数据类型

除了基本数据类型以外的都是引用数据类型,也可以说成是一个个对象。
引用数据类型的特点:

  • 创建时在堆上开辟空间存储,栈中存放该堆的引用(指针)
  • 赋值时只是将引用(指针)赋值。
  • 给函数传参时是引用传递。

值和引用

值拷贝与引用拷贝

public class Main{
	public static void main(String[] args){
		int a=0;
		int b=a;
		a=1;
		System.out.println(b)
	}
}

此时打印出的结果是0而不是1,这就是值拷贝,因为int是基本数据类型。

Class Int{
	public int num;
}
public class Main{
	public static void main(String[] args){
		Int a=new Int();
		a.num=0
		Int b=a;
		a.num=1;
		System.out.println(b.num)
	}
}

此时打印出的结果是1而不是0,因为Int是一个对象,是引用拷贝,a与b所指向的地址相同,所以变化其中一个,另一个也会发生变化。

值传递与引用传递

public static void main(String[] args) {
    int a=1;
    changeNum(a);
    System.out.println(a);
}
private static void changeNum(int a){
    a=2;
}

此时打印出的结果是1而不是2,因为int是基本数据类型,所以是值传递

public class Main {
    public static void main(String[] args) {
        Int a=new Int(1);
        changeNum(a);
        System.out.println(a.num);
    }
    private static void changeNum(Int a){
       a.num=2;
    }
}

class Int{
    public int num;
    public Int(int num){
        this.num=num;
    }
}

此时打印出的结果是2而不是1,对象传递是引用传递。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值