3. I have learnt about Lists. What are their advantages and disadvantages?
Display lists are designed to increase performance. They allow to store a set of openGL commands in a memory in a 'compiled' form and call it when needed. To give an analogy, the drawing commands between glBegin...glEnd are like a source code. Display list is like an executable.
Each time you draw something with glBegin...glEnd OpenGL needs to 'compile' it and then execute, while display list when called is executed straight away. A big speed gain. (It is like compiling program each time you want to use it versus compiling it once and runnig it without any recompilation). But it means that display lists are good for static geometry. You can't change part of it without recompiling whole list. So if your geometry changes a lot display lists are not effecitve. Lastly not all openGL commands can be put into display list.

To get more information check the redbook like Robert suggests.