همان طور که میدانید ما در جاوا دو نوع داده داریم یک نوع داده های اولیه (Primitive Data Type)و نوع دیگر داده های ارجاعی(Reference Data Type) که این دو تفاوت هایی با هم دارند. یکی از این تفاوت ها که بسیار مورد توجه هست ارسال پارامتر متد و استفاده از هر یک از این دو و دریافت نتیجه ای متفاوت خواهد بود.

حال من یک نمونه مثال برای شما دوستان آماده کردم تا تفاوت این دو را متوجه شوید. دراین مثال من یک متد نوشتم که دو پارامتر یک از نوع داده اولیه و یک نوع هم داده ارجاعی که در این متد تغییراتی بر روی این متغیر های ایجاد خواهد شد که به اتفاق هم خواهیم دید که نتیجه این متد چه خواهد شد.

public class A1 {


    public static void main(String[] args) {
       
       double[] a={2,4,5,6,7};
       int w=20;
       
    System.out.println("Array a="+ArraySum(w,a));
    System.out.println("w="+w);
    System.out.println("a[2]="+a[2]);

        
              }

    private static double ArraySum(int w, double[] a) {
        w=12; 
        a[2]=6;
    
    double sum=0;
       
       for (double b : a) {
           sum+=b;
       }
       
       return sum;
   
    }
}

نتیجه کد:

Array a=25.0
w=20
a[2]=6.0

همان طور که مشاهده میکنید مقدار متغیر W هیچ تغییر نکرد اما مقدار a[2] تغییر کرده است.