Pass-by-reference language: In contrast to pass-by-value, pass-by-reference languages pass references or memory addresses of variables instead of making copies.
Immutable objects: Immutable objects cannot be changed after they are created. In pass-by-value languages, primitive types like integers and booleans behave like immutable objects.
Mutable objects: Mutable objects can be modified after they are created. In pass-by-value languages, non-primitive types like arrays and objects behave like mutable objects.