Very important: I had 2 interviews for 2 separate positions. In one I was interviewed by random people, and the other I was interviewed by my future team members. Guess which one game offer? The one where team members did interview.
Phone interview consisted mostly of Java core questions and may be be some threading. Was interviewed by my future manager.
On site, got interviewed by many people:
1) Javascript - language knowledge, and I think solve a problem
2) Java - language knowledge, and I think solve a problem
3) Threading, general how would you design a system.
No Google/Microsoft type questions.
When I was already working at Yahoo my team members when did interviews asked to solve real life problems which we had in our product and then saw if that matched our solutions.
Good to know things: design patterns, threading, when you choose your language then tricky things in your language: example: PhP (magic methods), Javascript (closures, vardiac functions), Java (inner classes)