Are constants faster than variables?
Some machine instruction sets include instructions for which 'small' constants are part of the instruction, either explicitly or implicitly.  E.g the set of 'add' instructions can include 'add immediate', where the value to be added fills out the rest of the instruction bits.  In that case, the operation does not need to fetch the constant value from a separate location - it 'comes for free' during the 'add' instruction fetch.  Not all constants can be handled in this manner, but a lot of the more common constants can.

Something similar has been done in certain interpreters.  For example, the Pascal P-CODE interpreter implemented each instruction op-code as one byte, but all 128 of the positive byte values were interpreted as immediate loads - e.g if the next op-code was the value 0x40 (the 'space' character), then the value 0x40 was pushed onto the expression stack.  The Java Virtual Machine derives (at least conceptually) from the P-CODE interpreter, and may do the same thing.