Diferentes formas de cargar un archivo como InputStream

Cuál es la diferencia entre

InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileName)

InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)

InputStream is = this.getClass().getResourceAsStream(fileName)

¿Cuándo son más apropiados para usar que los demás?

El archivo que quiero leer está en el classpath como mi clase que lee el archivo. Mi clase y el archivo están en el mismo jar y empaquetados en un archivo EAR f, ile, y desplegados en WebSphere 6.1.

Respuestas a la pregunta(6)

Su respuesta a la pregunta