Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package com.fasterxml.jackson.core.util;
 
 import java.util.Map;
Singleton class that adds a simple first-level cache in front of regular String.intern() functionality. This is done as a minor performance optimization, to avoid calling native intern() method in cases where same String is being interned multiple times.

Note: that this class extends java.util.LinkedHashMap is an implementation detail -- no code should ever directly call Map methods.

public final class InternCache
    extends LinkedHashMap<String,String>
{
    
Size to use is somewhat arbitrary, so let's choose something that's neither too small (low hit ratio) nor too large (waste of memory).

11-Jul-2012, tatu: Also, consider the nasty case of String hashCode() collisions; size needs to be small enough to survive linear list lookup... so let's go down a notch (from 192 to 100)

    private final static int MAX_ENTRIES = 100;
    public final static InternCache instance = new InternCache();
    private InternCache() {
        super(, 0.8f, true);
    }
    @Override
    protected boolean removeEldestEntry(Map.Entry<String,Stringeldest)
    {
        return size() > ;
    }
    public synchronized String intern(String input)
    {
        String result = get(input);
        if (result == null) {
            result = input.intern();
            put(resultresult);
        }
        return result;
    }
New to GrepCode? Check out our FAQ X