Java的数据类型及作为方法参数时的区别

本文详细介绍了Java中的数据类型,包括基本数据类型如int、double等,以及引用数据类型如类、接口、数组等。同时,文章还探讨了这些数据类型作为方法参数时的行为差异,并特别分析了String类型的特殊情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. java的数据类型

java的数据类型分为基本数据类型和引用类型

基本数据类型:int、double、float、byte、short、char、long、boolean

引用数据类型:类、接口、数组

2. 作为方法参数时的区别

当数据类型作为方法参数时,两种类型在Java中都是以值传递的方式

值传递:是指在调用函数时,将实际参数复制一份传递给函数,这样在函数中修改参数时,不会影响到实际参数

引用传递:是指在调用函数时,将实际参数的地址传递给函数,这样在函数中对参数的修改,将影响到实际参数

当方法中形参发生改变时分为以下3种情况:

1. 基本数据类型

形参改变不会改变实参的值

(因为传递的是栈内存中值copy的副本)

2. 引用数据类型

形参改变会改变实参的值

(这里传递的也是栈内存中值copy的副本,也正因为这一点,所以副本指向的堆内存中的地址相同,所以改变形参时,也会改变堆内存中的值)

3. String字符串

(1) 字符串常量池中的字符串

形参改变不会改变实参的值

(虽然String也是引用类型,但是因为在常量池中不同对象开辟的内存空间不一样,所以栈内存的值copy的副本作为形参改变时,会指向不同的堆内存地址)

(2) new 出来的 String对象 或 StringBuffer、StringBuilder

形参改变会改变实参的值

(因为此时,它们不是存储在字符串常量池中的,和普通引用数据类型存放的方式相同,故改变形参会影响实参的原理也相同)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值