public class Arg
{
public static void main(String[] args)
{
System.out.println("下列参数在运行时传递");
for(int i=0;i<args.length;i++)
{
System.out.println(args[i]);
}
}
}
参数是如何传递的,我在运行这个程序的时候只打印出("下列参数在运行时传递"),没有出现参数。数组没有任何输出。
{
public static void main(String[] args)
{
System.out.println("下列参数在运行时传递");
for(int i=0;i<args.length;i++)
{
System.out.println(args[i]);
}
}
}
参数是如何传递的,我在运行这个程序的时候只打印出("下列参数在运行时传递"),没有出现参数。数组没有任何输出。
输出:
下列参数在运行时传递
abc
def
ghi
java Arg.java 加参数只是
java Arg.java
是不会有输出的
args[0]就是第一个参数。类推
看看这个例子估计就能董了。
1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,如果你在方法中修改了值,方法调用结束后,那个变量的值没用改变。
2、对于对象类型,也就是Object的子类,如果你在方法中修改了它的成员的值,那个修改是生效的,方法调用结束后,它的成员是新的值,但是如果你把它指向一个其它的对象,方法调用结束后,原来对它的引用并没用指向新的对象。
代码如下:
public class Tester {
public static void main(String[] args) {
int primitive = 2;
changePrimitive(primitive);
//primitive的值依然是2
MyClass myClass = new MyClass();
changeObject(myClass);
//myClass仍然指向的是执行changeObject之前的那个对象
//但是myClass.i等于3了
} public static void changePrimitive(int primitive) {
primitive = 3;
} public static void changeObject(MyClass myClass) {
myClass.i = 3;
myClass = new MyClass();
}
}class MyClass {
int i;
}