I'm trying to fix a memory leak issue. Heap dump analysis shows that a ConcurrentHashMap is occupying around 98% of heap memory. Checked the code and it turns out that ConcurrentHashMap instantiation is using a constructor with no parameter. The default configuration for concurrencyLevel is 16. After this map instantiation I see a synchronized method call where data is being put in the map. 
I would like to know that since data is being put only in synchronized method, is it safe to set concurrencyLevel of ConcurrentHashMap to 1? 
Following is the sample code snippet:
private volatile Map<String, Integer> storeCache;
public void someMethod() {
    storeCache = new ConcurrentHashMap<String, Integer>();
    syncMethod();
}
private synchronized void syncMethod() {
    storeCache.put("Test", 1);
}
 
     
     
    