Yes, it's possible if you define the parameter as A[] i.e. load(A[] a) and then in the method you update the element at position 0 in that array i.e. a[0] = new A(). Otherwise, it's not possible as Java is pass by value. I often use this workaround. 
EXAMPLE 1:
class Example {
    public static void main(String[] args) {
        A[] a = new A[1];
        a[0] = new A("outer");
        System.out.println(a[0].toString());
        load(a);
        System.out.println(a[0].toString());
    }
    private static void load(A[] a) {
        a[0] = new A("inner");
    }
}
class A {
    private String name;
    public A(String nm){
        name = nm;
    }
    public String toString() {
        return "My name is: " + name;
    }
}
EXAMPLE 2:
class Example {
    public static void main(String[] args) {
        A[] a = new A[1];
        a[0] = null; // not needed, it is null anyway 
        load(a);
        System.out.println(a[0].toString());
    }
    private static void load(A[] a) {
        a[0] = new A("inner");
    }
}
class A {
    private String name;
    public A(String nm){
        name = nm;
    }
    public String toString() {
        return "My name is: " + name;
    }
}
NOTE: In fact, instead of an A[] you can use any wrapper object (an object which contains in itself a reference to an A object). The A[] a is just one such example. In this case a[0] is that reference to an A object. I just think that using an A[] is the easiest (most straightforward) way of achieving this.