java 基本数据类型 变量赋的值,储存在计算机的哪里啊 eg: int i=0; 0储存在哪里啊 是在栈中?堆?
在java传值中,基本类型是将值copy一份传到方法中,是这样的吗inti=0;0储存在哪里啊,栈,还是堆中?...
在java 传值中,基本类型是将值copy 一份传到方法中,是这样的吗
int i=0; 0储存在哪里啊,
栈,还是堆中? 展开
int i=0; 0储存在哪里啊,
栈,还是堆中? 展开
8个回答
展开全部
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是引用类型,但传值规律是和基本类型一样的。
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是引用类型,但传值规律是和基本类型一样的。
追问
引用 一般来说是对象,我现在想搞懂的是,基本类型的赋值是放在计算机的哪里,有什么资料可以让我参考一下,我一直认为 基本类型的值放在栈中,不小的是不是这么一回事
展开全部
那要看你的数据是的作用域了,如果是方法变量,当程序执行到方法体时,在栈中开辟一块区域存储方法相关的数据,当你的方法执行完了,这块内存也被回收,如果是类里的成员变量就不是这样了,和对象一起存在堆里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Java严格来说并不是完全面向对象,因为在java里还没有解释说基本数据类型也是作为对象使用。基本数据类型都是将值copy。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错,它是将利用基本类型声明后在栈中寻找有没有这个基本数据类型,如果有就直接调用,如果没有就在栈中声明一个,在调用这个声明的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
堆里存放值,栈里存放引用。所以0是存放在堆中。而int i这个i只是指向了0。就像C里面的指针。java只是把指针封装了。
追问
照你这样说!
栈存放引用,堆放数值
为什么对象作为参数传入方法,方法里改变对象的一些属性值,最后输出对象的属性值,是方法里改变的啊
同样,把基本数据类型的值作为参数传入方法,最后输出基本数据,值是改变的啊
按你的说法,两个都是把 引用 传入方法,但为什么最后有改变和不改变之分
这个改变是什么原因引起的?是不是java里 采取了什么机制,让对象改变,而基本数据类型不改变
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询