java 基本数据类型 变量赋的值,储存在计算机的哪里啊 eg: int i=0; 0储存在哪里啊 是在栈中?堆?

在java传值中,基本类型是将值copy一份传到方法中,是这样的吗inti=0;0储存在哪里啊,栈,还是堆中?... 在java 传值中,基本类型是将值copy 一份传到方法中,是这样的吗
int i=0; 0储存在哪里啊,
栈,还是堆中?
展开
 我来答
zbj5599042
2012-05-31 · TA获得超过231个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:123万
展开全部
0是在栈中的。
java中八大基本类型都是值传递的,比如
public class Test1 {
public static void main(String[] args) {
int i=1;
add(i);
System.out.println(i);
}
public static void add(int i){
i++;
}
}
运行结果为1
值传递确实是将值复制给方法中的局部变量
比起这个以后肯定会碰到String的值传递,因为String类型一旦创建就无法改变,是final类,所以虽然String是引用类型,但传值规律是和基本类型一样的。
追问
引用 一般来说是对象,我现在想搞懂的是,基本类型的赋值是放在计算机的哪里,有什么资料可以让我参考一下,我一直认为 基本类型的值放在栈中,不小的是不是这么一回事
P6631034
2012-05-31 · TA获得超过379个赞
知道答主
回答量:306
采纳率:0%
帮助的人:134万
展开全部
那要看你的数据是的作用域了,如果是方法变量,当程序执行到方法体时,在栈中开辟一块区域存储方法相关的数据,当你的方法执行完了,这块内存也被回收,如果是类里的成员变量就不是这样了,和对象一起存在堆里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绌虹櫧鏍尖紓58
2012-05-30 · 超过29用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:64.7万
展开全部
Java严格来说并不是完全面向对象,因为在java里还没有解释说基本数据类型也是作为对象使用。基本数据类型都是将值copy。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
只求一件
2012-05-31
知道答主
回答量:3
采纳率:0%
帮助的人:3.1万
展开全部
错,它是将利用基本类型声明后在栈中寻找有没有这个基本数据类型,如果有就直接调用,如果没有就在栈中声明一个,在调用这个声明的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
f279885782
2012-05-31
知道答主
回答量:22
采纳率:0%
帮助的人:11.2万
展开全部
堆里存放值,栈里存放引用。所以0是存放在堆中。而int i这个i只是指向了0。就像C里面的指针。java只是把指针封装了。
追问
照你这样说!
栈存放引用,堆放数值
为什么对象作为参数传入方法,方法里改变对象的一些属性值,最后输出对象的属性值,是方法里改变的啊
同样,把基本数据类型的值作为参数传入方法,最后输出基本数据,值是改变的啊
按你的说法,两个都是把 引用 传入方法,但为什么最后有改变和不改变之分
这个改变是什么原因引起的?是不是java里 采取了什么机制,让对象改变,而基本数据类型不改变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式