I assume If a thread unsafe class's object creation is expensive and we would like to use that instance at different place for thread execution in multi threaded environment, we should use ThreadLocal. Because it is expensive and it is unnecessary to create new instances of those thread unsafe classes multiple times in a thread execution.
So SimpleDateFormat is example of this. Could you please tell me in what terms SimpleDateFormat is expensive? As well how would i know certain thread unsafe class's object creation would be expensive. So i must use ThreadLocal.