How can I calculate the power of an integer in Java without using doubles?

Both methods above work, but for large numbers, an optimized approach is Exponentiation by Squaring (used in competitive programming & cryptography).

public static int power(int base, int exponent) {
    if (exponent == 0) return 1;
    int halfPower = power(base, exponent / 2);
    if (exponent % 2 == 0) {
        return halfPower * halfPower;
    } else {
        return base * halfPower * halfPower;
    }
}
  • O(log n) complexity (much faster than O(n))
  • Best for large exponent values