去年10月份从学校出来实习,从事javaWeb方面的开发。到现在已经快1年了。突然间感觉自己的java基础知识忘记的很厉害,或者说知识掌握的不牢吧。回顾自己学习java,发现我竟然一本关于java基础的书籍都没有看,以前都是看的视频进行学习的。现在想好好补下基础。先从看《head first java》这本书开始吧。
今天在公交上看来一个比较有意思的程序。如下:
当时看了下,弄了好一会,没弄不来。。。。看了答案了后觉得很有意思。答案我就不贴不来了。以后回顾时,应该可以想起来吧~~
java参数值的传递,java是通过值传递,也就是说通过拷贝传递。实参和形参是两个不同变量。对于原声数据类型来说,实参和形参没有任何关系,是两个不同的变量,但是对于引用数据类型,形参和实参虽然是两个不同变量,但是他们指向同一对象,对其中一个的改变会影响到另外一个。代码如下:
public class Person { private int age; private String name; public Person(int age,String name){ this.age = age; this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public class Test01 { static void changeParam(int param){ param = param + 3; } static void changeParam(Person p){ p.setAge(34); } public static void main(String[] args) { int param = 3; System.out.println("before:"+param); changeParam(param); System.out.println("after:"+param); Person p = new Person(13,"zhongqian"); System.out.println("before:"+p.getAge()); changeParam(p); System.out.println("after:"+p.getAge()); } }
运行结果:
如果参数是原声数据类型,形参的改变不会影响到实参;如果参数是引用数据类型,形参的改变会影响到实参。