1.先比较下字符串的比较
== 代表全等于 值和地址(存放地址) 全部相等于。
equals 值等于
== 和 equals的区别 列如下面的 如果name1==name2是等于的
然而name1==name3 结果 不是不等于的,因为生成了新的地址
如果 name1.equals(name3) 这个比较只要求值的比较,输出结果是相等的。
String name1="zhangsan";
String name2="zhangsan";
String name3=new String("zhangsan");
if(name1==name2){
System.out.println("等于");
new 表示强制开辟新的内存空间
}
2.在编程中,在方法调用之间复制数据的过程叫按值调用。
区分调用时 值的变化:
public static void mian(string[]args){
b=10;
test();System.out.println(test());
}
方法
public static int test(int a){
a =5;
}
结果输出是10
public static void mian(string[]args){
int[] nums={12,2,3,7}
test(nums);System.out.println(nums[0]);
}
方法
public static int test(int a){
a =5;
}
输出结果 是5
在Java中只有值传递 :
string字符串类型在内存中只能读,不能更改。虽然是引用类型,但是在调用时不会更改。
引用类型传递的是地址,是会修改原值的,会被方法覆盖,比如数组传递的也是地址
只传值的,是不会被覆盖修改的。
***