一.java中的数据类型
基本数据类型:byte,short,int,long,float,double,char,boolea
引用数据类型:new出来的对象,数组,字符串等
二.值传递:
相对于基本数据类型来的,实参传递给形参的是实参的拷贝副本,传递过后二者就不想关了,形参的改变影响不了实参的值
值传递示例:
public static void main(String[] args) {
// TODO Auto-generated method stub
int b = 20;
change(b);
System.out.println(b);
}
public static void change(int a) {
a=100;
}
这段代码的最后输出的b的值还为20,我们可以把它的内存画出来看一下
这里是相当于把b的值再复制一个副本传递给形式参数,值传递后,实参传递给形参的值,形参发生改变而不影响实参。
三,引用传递
一般是对于引用数据类型来的,传递是引用数据的类型的地址,这时候形参和实参都指向同一个地址,形参的改变自然也会引起实参的改变.
示例:
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p = new Person();
p.setName("chen");
Person m = new Person();
m=p;
System.out.println(m.getName());
m.setName("lin");
System.out.println(p.getName());
}
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
输出结果
第二次我修改的是m的名字.但是我输出的p名字,这时候p的名字也跟着改变了,说明他们指向的同一个对象.