Output of Free command in unix?

Hello, I need some help to interpret the below output...
What is -/+ buffers/cache?

My understanding is, total RAM is 3986152 Bytes, used RAM is 3950904 bytes.
What is buffers and cached?? Can any one please interpret this output? It would be great help if some one can help me on this?

oracle:/home/oracle/db/imp>free
             total          used          free        shared    buffers     cached
Mem:       3986152    3950904      35248          0       3428    3092364
-/+ buffers/cache:     855112    3131040
Swap:      8323056      35596    8287460
oracle:/home/oracle/db/imp>

The second line is the important one, i.e.

3950904 - 3428 - 3092364 = 855112
3986152 - 855112 = 3131040

Fpmurphy : Thank you for the reply!!. It is more clear now. Thank you again