From the Java Language Specification, Third Edition:


Bottom lines:

'^' operating on two Java integer data types, (or on expressions that evaluate to integer data types) gives an integer...