where the behavior of private and static method is different from only private method <p>As for my understanding:</p> <p>When a method is static it is </p> <ol> <li>early bind </li> <li>can call with the name of class even before no object is created </li> <li>can call only static member inside it.</li> </ol> <p>I never found any other behaviour of static either at compile time or runtime. <strong>Is there any?</strong></p> <p>When a method is private it is</p> <ol> <li>also early bind </li> <li>can only call inside call so can call directly without object.</li> </ol> <p>For example the <code>hugeCapacity()</code> method in the <code>ArrayList</code> class.</p> <pre><code>private static final int DEFAULT_CAPACITY = 10; private static int hugeCapacity(int minCapacity) { if (minCapacity &lt; 0) // overflow throw new OutOfMemoryError(); return (minCapacity &gt; MAX_ARRAY_SIZE) ? Integer.MAX_VALUE : MAX_ARRAY_SIZE; } </code></pre> <p>Since there are in Java private+static method exist. Why their need occurs. Is it for restriction purpose, to restrict access of non static variables inside a method?</p>