① java 基本数据类型 变量赋的值,储存在计算机的哪里啊 eg: int i=0; 0储存在哪里啊 是在栈中堆
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基础问题,到底是值传递还是引用传递
传递的是对象没错,问题出在str = "修改后的str"; 这一句上。
这句话表示新建一个对象,内容是“修改后的str”,然后赋给str
因此,原对象内容并没有发生变化。这也是java和c++不同的地方。
String[]和int[]中存放的是指向对象的地址,因此修改后它的值可以返回到主函数中。这个是毋庸置疑的。
数组也是一样,因为数组传递的是地址(我这么认为)因此,你对对象的改变就会反应到主函数中。
你采用的String 和 String[]变量的区别是:String变量传递的是一个对象,当它被赋予一个新对象内容时,原对象不会发生变化。而String[]是一个数组,传递的是对象的地址。新对象赋给新地址,地址没有变,但对象变了,因此String【】内容变了。