In Java, static
denotes class methods and class variables (as opposed to instance methods and instance variables). These methods and variables can be accessed without an instance present.
Contrast this to instance methods and instance variables: they must be accessed through an object. For example, length()
operates on an object:
1 2 |
<span class="typ">String</span><span class="pln"> a </span><span class="pun">=</span> <span class="str">"hello"</span><span class="pun">;</span> <span class="kwd">int</span><span class="pln"> len </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">length</span><span class="pun">();</span> |
In contrast, valueOf
cannot operate on an object; moreover, it creates a new object when called:
1 |
<span class="typ">String</span><span class="pln"> x </span><span class="pun">=</span> <span class="typ">String</span><span class="pun">.</span><span class="pln">valueOf</span><span class="pun">(</span><span class="lit">123.45</span><span class="pun">);</span> |
Note how instance methods are called using <objectName>
followed by a dot .
, while static methods are accessed using <className>
followed by a dot .
.