package com.test;
public class Callbyvalref {
    int data = 50;
    int x = 10;
    void change(Callbyvalref call) {
        call.data = call.data + 500;
    }
    void nochange(int x) {
        x = x + 25;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Callbyvalref call = new Callbyvalref();
        call.change(call);
        System.out.println("Call By reference: " + call.data);
        call.nochange(500);
        System.out.println("Call By Value: " + call.x);
    }
}
Call By reference: 550 Call By Value: 10
When I change
void nochange(int y) {
    x = x + 25;
}
Call By reference: 550 Call By Value: 35
Both times Call.x printing different values.. any one can explain what is the changes happening when argument variable is changed..
 
     
     
     
    