51,397
社区成员




public class StringTest {
/**
* @param args
*
*/
public static void main(String[] args) {
String[] flag=null;
reFormat(flag);
System.out.println(flag);//为什么输出来的还是null?
}
private static void reFormat(String[] flag){
String[] flags ={"1","2","3"};
flag=flags;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] flag=null;
flag = reFormat(flag);
System.out.println(flag);
}
private static String[] reFormat(String[] flag){
String[] flags ={"1","2","3"};
flag=flags;
return flag;
}
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
String[] flag = null;
flag=reFormat1(flag);
System.out.println(Arrays.toString(flag));
}
// flag 是形参,Java是传引用的,但是不会改变形参的值
private static String[] reFormat1(String[] flag) {
String[] flags = { "1", "2", "3" };
return flag = flags;
}
}
public class StringTest {
public static void main(String[] args) {
String[] flag=null;
reFormat(flag);//Java是值传递,将实参flag=null传递形参flag后,形参flag=null,
//方法reFormat将形参的flag变成了flags={"1","2","3"},但是此时实参flag还是null,
//最后形参的flag被扔掉了,而实参flag一直都是null从未改变过。
System.out.println(flag);
}
private static void reFormat(String[] flag){
String[] flags ={"1","2","3"};
flag=flags;
}
}
public static void main(String[] s) {
String[] array = {"0"};
System.out.println(array[0]);
change(array);
System.out.println(array[0]);
}
private static void change(String[] test_array) {
test_array[0] = "1";
}
package main;
public class Main {
public static void main(String[] args) {
String[] flag = null;
reFormat1(flag);
// 打印数组要遍历,这样打印的是数组地址的哈希码
System.out.println(flag);
}
// flag 是形参,Java是传引用的,但是不会改变形参的值
private static void reFormat1(String[] flag) {
String[] flags = { "1", "2", "3" };
flag = flags;
}
}
package main;
public class Main {
public static void main(String[] args) {
String[] flag = null;
reFormat1(flag);
// 打印数组要遍历,这样打印的是数组地址的哈希码
System.out.println(flag);
}
// flag 是形参,Java是传引用的,但是不会改变形参的值
private static void reFormat1(String[] flag) {
String[] flags = { "1", "2", "3" };
flag = flags;
}
}