title: Which variable declaration should be used?
body: <p>I want to write perfect Java code, so please let me ask this question.</p>
  
  <p>I want to use a never-changing <code>String</code> variable in my method like this:</p>
  
  <pre><code>1. String STR4SEARCH_START = "Abc";
  </code></pre>
  
  <p>And I could define it just in my method, and because it doesn't need to change, I could also define it in my class like this:</p>
  
  <pre><code>2. private final String STR4SEARCH_START = "Abc";
  3. private static final String STR4SEARCH_START = "Abc";
  4. public final String STR4SEARCH_START = "Abc";
  5. public static final String STR4SEARCH_START = "Abc";
  </code></pre>
  
  <p>Here is my <strong>question</strong>: from way1-way5, which one is the best, and could you please explain why?</p>
  
  <p>Thank you very much.</p>