看程序写结果,并画内存图解释

  1. public static void main(String[] args) {
  2. int a = 10;
  3. int b = 20;
  4. System.out.println("a:"+a+",b:"+b); //a = 10,b = 20
  5. change(a,b);
  6. System.out.println("a:"+a+",b:"+b); //a = 10,b = 20
  7. }
  8. public static void change(int a,int b) { //a = 10, b= 20
  9. System.out.println("a:"+a+",b:"+b); //a = 10,b = 20
  10. a = b; //a = 20
  11. b = a + b; //b = 40
  12. System.out.println("a:"+a+",b:"+b); //a = 20, b = 40
  13. }

基本数据类型的值传递.png

  1. public static void main(String[] args) {
  2. int[] arr = {1,2,3,4,5};
  3. change(arr);
  4. System.out.println(arr[1]);
  5. }
  6. public static void change(int[] arr) { //1,4,3,8,5
  7. for(int x=0; x<arr.length; x++) {
  8. if(arr[x]%2==0) {
  9. arr[x]*=2;
  10. }
  11. }
  12. }

引用数据类型的值传递.png