is created and passed to the method. All primitive data types are passed by value (byte, short, int, long, float, double, char, boolean) Pass by reference: When passing object, you're passing an object reference. Note: Each primitive has also a wrapper object, ex. int -> Integer which acts as reference type Note2: String object is specially handled: object which is not changeable