Could somebody please explain what are the differences among these three graphical methods? I am getting really confused by them.

- paint(Graphics g)
- repaint(Graphics g)
- update(Graphics g)

When do I need them? Where do I use them? How do I use them? What differences do I have to concern with when applying them in an application and in an applet?