The interview process began with a phone screening, followed by an on-site interview. The on-site interview lasted 3.5 hours and was split into different phases. Each phase lasted approximately 30 minutes and consisted of either single interviewers or a group of two. Candidates were asked to solve algorithmic programming problems on paper, along with general knowledge questions about core Java.
Write a function to reverse a string.
What's the difference between an Interface and an Abstract class?
Write a function to reverse words in a string. Example: "how are you" becomes "you are how".
Can you assign a String to an Object? What about the other way around, and why?
Explain Generics.
Explain Generics wildcards.
Find the depth of a binary tree.
How can you run one thread and then another only after the first thread has completed?
What's the difference between thread.sleep() and wait()? What about suspend() and resume()?
Write a function that traverses an array and checks the sum to the left of the index with the sum to the right of the index. Return the index position when the left summation equals the right. Can you optimize your solution further?
Write an iterator that traverses an array of integers, but only for even values.
Design a library containing books with users who can check out books from the library. This task is meant to demonstrate your design abilities.
The following metrics were computed from 7 interview experiences for the Morgan Stanley Java Developer role in Montreal, Quebec.
Morgan Stanley's interview process for their Java Developer roles in Montreal, Quebec is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Morgan Stanley's Java Developer interview process in Montreal, Quebec.