Novices have a hard time with this, I'll try to explain in story form:
If I let you borrow my sticky note (with my name on the top) with an arrow that points to the red sofa, and you take my sticky note and erase my arrow and put on a new arrow to the green sofa. When you finish your shenanigans, I will have a sticky note with my name on it that points to the green sofa. My stickynote was changed.
If however, I let you borrow my sticky note with my name on it, which has an arrow that points to the red sofa, and you take my sticky note and set it to the side, and you make a new sticky note with your name on it, then you put an arrow on it pointing to the green sofa, and you finish your shenanigans, then my sticky note is unchanged with my name pointing to the red sofa. You created your sticky note that I can't reach.
When you crammed a new object into t1, you didn't destroy the old one because you do not have authorization to do so. You simply pushed it to the side, and created a new one, which nobody has access to except you.
This line:
t1 = new Test(999);
Does not erase the old t1. You simply make a new t1 that is only local to the method, which is garbage collected after the method ends. With this line, you didn't change the parameter passed in, you created a new variable with the same name.