java基础学习(一)

     去年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());
	}
}


运行结果:

如果参数是原声数据类型,形参的改变不会影响到实参;如果参数是引用数据类型,形参的改变会影响到实参。

原文地址:https://www.cnblogs.com/keanuyaoo/p/3358228.html