I applied online. The questions asked initially were expected (a few OOPs concepts, OS etc) but later the coding questions got a lot harder. Also, the interviews don't really follow a logical train of thought, they jump from one concept to a totally different concept rapidly. They look for perfection, and your code must be complete.
I applied through college or university. The process took 2 weeks. I interviewed at Amazon
Interview
There were four interviews, all of which took place on campus. The first interview was for selection to the next round. Was asked to merge LL and an OOP question. Was asked to come the next day for three more interviews. They were pretty standard questions based on Binary Trees, arrays and some other data structures.