When passing arguments by value, a new copy of the variable is created and a new object is allocated in memory for the called function. The original variable remains unchanged in the caller's scope, so both statements (2) and (3) about new variable access and new object creation are correct.