I was initially contacted by a former peer who now works at Capital One. The company was coming to my university's job fair, and so I applied online after he prompted me to do so, waited for a response, ended up getting an "alternative" interview status, so couldn't interview on campus. They flew me out a week later to Richmond where I was able to interview on-site and explore their campus to a degree. I liked the culture - it really is more like a tech company that just so happens to provide services in the banking industry. The attendants, engineers, and interviewers all make you feel comfortable throughout the experience.
The interviews comprised of three stages: 1) a case interview, which presents a business situation for which you must do some basic analysis and provide a recommendation at the end; 2) a behavioral interview asking questions in the form "tell me a time when you..."; and 3) a technical interview. I found the case interview to be extremely easy to logic your way through, and the behavioral interview was pretty typical / standard. You might want to have your resume at hand to remember some of the projects you've worked on, before the behavioral interview begins, it helps a lot.
The technical interview is the difficult part. If you don't understand Java and concepts in Java, you might be doomed. This includes some know-it-or-you-don't short-answer / free response questions. The majority of it, though, is a coding question where they'll give you a X data structure and ask you to implement Y method - it'll be in Java, but they'll ask you to implement it in whatever language you feel comfortable. But clearly you'll have an advantage if you know java.