Confused about ThreadLocal
I just learned about ThreadLocal this morning.  I read that it should always be final and static like:

private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();

(Session is a Hibernate Session)

My confusion is this:  Because it is static, it is available to any thread in the JVM.  Yet it will hold information local to each thread which accesses it?  I'm trying to wrap my head around this so I apologize if this is unclear.  Each thread in the application has access to the same ThreadLocal object, but the ThreadLocal object will store objects local to each thread? 

Thanks, Eric
Confused about ThreadLocal
===

I just learned about ThreadLocal this morning.  I read that it should always be final and static like:

private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();

(Session is a Hibernate Session)

My confusion is this:  Because it is static, it is available to any thread in the JVM.  Yet it will hold information local to each thread which accesses it?  I'm trying to wrap my head around this so I apologize if this is unclear.  Each thread in the application has access to the same ThreadLocal object, but the ThreadLocal object will store objects local to each thread? 

Thanks, Eric