title: Does getInstance() denote a singleton according the singleton pattern?
body: <p>Having worked with C# before, I have considered</p>
  
  <pre><code>Calendar cal = Calendar.getInstance();
  </code></pre>
  
  <p>to be a singleton method according the GoF <a href="https://en.wikipedia.org/wiki/Singleton_pattern" rel="noreferrer">Singleton pattern (Wikipedia)</a> and I wondered how to create two calendars, since <code>Date</code>is somewhat deprecated.</p>
  
  <p>From the documentation</p>
  
  <blockquote>
    <p>Gets a calendar using the default time zone and locale.</p>
  </blockquote>
  
  <p>and the overloads</p>
  
  <pre><code>getInstance(TimeZone zone)
  getInstance(Locale aLocale)
  </code></pre>
  
  <p>this seemed to me to be a generalization of the singleton pattern to create a singleton per time zone and locale. But I wanted two calendars in the same time zone.</p>
  
  <p>However, when I conducted the test</p>
  
  <pre><code>@Test
  public void test()
  {
      Calendar cal = Calendar.getInstance();
      Calendar cal2 = Calendar.getInstance();
      assertTrue(cal == cal2); 
  }
  </code></pre>
  
  <p>it failed, telling me that this <code>getInstance()</code> method is actually <em>not</em> a singleton pattern <code>getInstance()</code> method but something else.</p>
  
  <p>So, <strong>does <code>getInstance()</code> in general denote a singleton according the singleton pattern in Java or not?</strong> If so, what are the key wordings in the Java documentation to find out it <em>is</em> or <em>is not</em> a singleton? If not, how do I identify a singleton pattern in Java? Or is <code>Calendar</code> the only exception?</p>
  
  <p>I'd not like to implement a unit test each time I meet a <code>getInstance()</code> call.</p>
  
  <p>I have read <a href="https://stackoverflow.com/a/73763/4136325">this answer to "What is an efficient way to implement a singleton pattern in Java?"</a>, which would work exactly like in C#, which contradicts the <code>Calendar</code> implementation.</p>