Java程序设计语言使用值调用。也是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何基本数据类

  方法参数共有两种类型:

  1、基本数据类型(数字、布尔值)。

  2、对象引用。

  一个方法不可能修改一个基本数据类型的参数。而对象引用作为参数不同了,对象参数所引用的对象状态是可以被改变的,因为方法

  得到的是对象引用的拷贝,对象引用及其他的拷贝同时引用同一个对象。

  Java程序设计语言对对象采用的不是引用调用,实际上,对象引用进行的是值传递。

  总结Java程序设计语言中,方法参数的使用情况:

  1、一个方法不能修改一个基本数据类型的参数(即数值开和布尔值)。

  2、一个方法可以改变一个对象参数的状态。

  3、一个方法对象参数引用一个新的对象不改变方法外对象的值。

package com.action;
 
 public class Test {
 
     private static int i = 1;
     private static String s = "string1";
     private static String[] ss = { "11", "bb", "cc" };
     private static int j = 10;
 
     public int ii;
     static {
         System.out.println("静态块1");
         System.out.println(i);
     }
     static {
 
         System.out.println("静态块2");
     }
 
     /**
      * @param args
      */
     public static void main(String[] args) {
       
         Test t = new Test();
         t.changeInt(i);
         System.out.println("?入int值:" + i + ":::" + j);
 
         t.changeString(s);
         System.out.println("?入String值1:" + s);
 
         t.changeString2(s);
         System.out.println("?入String值2:" + s);
 
         t.changeStrings(ss);
         System.out.println("?入数组:" + ss[0] );
 
         t.changeTest(t);
         System.out.println("?入?象"+t.i);
 
         t.ii = 111;
         t.changeTest1(t);
         System.out.println(t.ii);
     }
 
     public void changeInt(int i) {
         i = 10;
         j++;
     }
 
     public void changeString(String s) {
         s = new String("changeString");
     }
 
     public void changeString2(String s) {
         s.replace("o", "a");
     }
 
     public void changeStrings(String[] s) {
         s[0] = "numberChange";
     }
 
     public void changeTest(Test t) {
         Test tt = new Test();
         tt.i = 100;
         t = tt;
 
     }
 
     public void changeTest1(Test t) {
         Test tt = new Test();
         tt.ii = 1;
         t = tt;
     }
 
 }

  结果:

  静态块1
  1
  静态块2
  ?入int值:1:::11
  ?入String值1:string1
  ?入String值2:string1
  ?入数组:numberChange
  ?入?象100
  111

  一个方法中可以有多个静态块。