Static methods in Java - Time & Space Complexity
Let's see how the time it takes to run static methods changes as we use them more.
We want to know how the work done grows when calling static methods in a program.
Analyze the time complexity of the following code snippet.
public class Calculator {
public static int square(int n) {
return n * n;
}
public static void printSquares(int[] numbers) {
for (int num : numbers) {
System.out.println(square(num));
}
}
}
This code defines a static method to square a number and another static method to print squares of all numbers in an array.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Looping through the array in
printSquaresand callingsquarefor each element. - How many times: Once for each element in the input array.
Explain the growth pattern intuitively.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 calls to square and 10 print operations |
| 100 | 100 calls to square and 100 print operations |
| 1000 | 1000 calls to square and 1000 print operations |
Pattern observation: The work grows directly with the number of elements; doubling the input doubles the work.
Time Complexity: O(n)
This means the time to run grows in a straight line with the number of items you process.
[X] Wrong: "Static methods always run faster and take constant time no matter what."
[OK] Correct: Static means the method belongs to the class, not an object, but the time depends on what the method does and how many times it runs.
Understanding how static methods behave helps you explain code efficiency clearly and confidently in real projects and interviews.
"What if the square method called itself recursively? How would the time complexity change?"
