title: Performance of ConcurrentHashMap.putIfAbsent
body: <p>In <a href="http://www.youtube.com/watch?v=V1vQf4qyMXg&amp;feature=related" rel="noreferrer">his talk about Effective Java</a> at 54:15 Joshua Bloch recommends to use <code>get</code> before <code>putIfAbsent</code> in order to improve performance and concurrency. This leads me to the question why this optimization is already not build in like</p>
  
  <pre><code>public V BETTER_putIfAbsent(K key, V value) {
      V result = get(key);
      if (result!=null) return result;
      return ORIGINAL_putIfAbsent(key, value);
  }
  </code></pre>