- Java中的数据类型
- 基本数据类型:byte、short、int、long、float、double、char、boolean
- 引用类型:类(class)、接口(interface)、数组(array)
2.Java中参数传递问题
- 基本类型:形式参数的改变不影响实际参数
- 引用类型:形式参数的改变直接影响实际参数
3.方法参数是类名
如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。在传递过程中,传递的是该类对象的地址值.
注意:在Java里面基本类型和String是按值传递,因为String底层是char实现,char是基本数据类型,其它都是引用传递
4.案例:
package day0520;
public class demo1 {
public static void main(String[] args) {
//基本数据类型形参改变不影响实参
int a = 10;
System.out.println("调用方法之前a的值为:" + a);
Change(a);
System.out.println("调用方法之后a的值为:" + a);
//引用数据类型:数组
//形参改变会影响实参的值
int[] arr=new int[]{1,2,3};
System.out.println("调用方法之前arr[0]的值为:" + arr[0]);
ChangeArr(arr);
System.out.println("调用方法之后arr[0]的值为:" + arr[0]);
//String类型是引用类型,但在作为参数传递的过程中,表现出来的却是基本数据类型
//因为String类型的底层数据结果是char
String name="wtc";
System.out.println("调用方法之前name的值为:" + name);
ChangeName(name);
System.out.println("调用方法之后name的值为:" + name);
}
public static void Change(int a){
a=20;
System.out.println("a的值为:"+a);
}
public static void ChangeArr(int[] arr){
arr[0]=100;
System.out.println("arr[0]的值为:"+arr[0]);
}
public static void ChangeName(String name){
name="yyy";
System.out.println("name的值为:"+name);
}
}
运行结果:
调用方法之前a的值为:10
a的值为:20
调用方法之后a的值为:10
调用方法之前arr[0]的值为:1
arr[0]的值为:100
调用方法之后arr[0]的值为:100
调用方法之前name的值为:wtc
name的值为:yyy
调用方法之后name的值为:wtc