Вы можете создавать объекты в штучной упаковке, т.е.
Integer iObj = new Integer(i);
Integer jObj = new Integer(j);
и напишите свою рутину как
public void test(Integer i, Integer j){
i = i.add(1);
j = j.add(1);
}
По ряду причин разработчики Java считали, что вызов по значению лучше; они специально не включали метод для вызова по ссылке. (Строго говоря, они передают копии ссылок на объекты со специальным случаем для примитивных типов, которые они просто называют по значению. Но эффект тот же.)