Android Interview

Interview Questions Collection

  1. careercup,There is an accompany book: “Cracking the Coding Interview: 150 Programming Questions and Solutions” by Gayle Laakmann McDowell
  2. Cracking the coding interview–问题与解答
  3. Quora:Java Interview Questions. A collection of java interview questions on quora.

    Java Resources

  4. Qura: What questions are Java Software Engineers seeing the most of on technical interviews?
  5. Qura: [What are good interview questions to ask JAVA developers?] (http://www.quora.com/Java-programming-language/What-are-good-interview-questions-to-ask-JAVA-developers)
  6. Java puzzlers by Joshua Bloch. RECOMMENDED FOR SENIOR JAVA DEVELOPERS.
  7. Effective Java by Joshua Bloch. RECOMMENDED FOR ADVANCED JUNIOR JAVA DEVELOPERS.
  8. Java Concurrency in Practice by Tim Peierls, Brian Goetz, Joshua Bloch, Joseph Bowbeer, Doug Lea, David Holmes. RECOMMENDED FOR SERVER DEVELOPERS.
  9. Inside the Java Virtual Machine by Bill Venners. Online book available.
  10. Books Related to the JVM, a list of jvm books.
  11. Thinking in Java by Bruce Eckel. JAVA 101
  12. The Java Job Interview Companion
  13. Quora: What are good books to test one’s programming skills?
  14. Wiki:List of data structures
  15. Wiki:List of algorithms
  16. Programming Interviews Exposed: Secrets to Landing Your Next Job
  17. Coding Interviews By Harre He . A Press
  18. Cracking the coding interview by Gayle as mentioned in other posts
  19. Algorithms For Interviews (9781453792995): Adnan Aziz, Amit Prakash: Books
  20. Programming Challenges by Steven Skiena
  21. Elements of Programming Interviews.
  22. Cracking the Coding Interview: 150 Programming Questions and Solutions
  23. Cracking The IT Interview 2nd Edition -
  24. Data Structures and Algorithms Made Easy 2nd Edition - I strongly recommend this book
  25. Cracking the C, C++ and Java Interview 1st Edition -
  26. Test your C Skills - Yashwant Kanetkar
  27. Test your C ++ Skills - Yashwant Kanetkar
  28. Exploring C - Yashwant Kanetkar
  29. Test Your Unix skills - Yashwant Kanetkar
  30. Top 15 Java threading interview questions asked in Investment banks
  31. 有道难题

I mostly agree with John Kurlak’s answer. Personally I feel Cracking the Coding Interview: 150 Programming Questions and Solutions is a good choice if you only know Java. Programming Interviews Exposed is a little elementary and the materials actually need to be updated. Elements of Programming Interviews: 300 Questions and Solutions seems for people who actually want to pass all interviews including the hardest one after concluding all reviews on Amazon, and it is mainly written in C++ which makes this as a great choice for people who can understand on C++.

Sample Questions

  1. Card Shuffle

The following shuffle method purports to shuffle its input array fairly. In other words, it purports to generate all permutations with equal likelihood, assuming that the underlying pseudorandom number generator is fair. Does it make good on its promise? If not, how do you fix it?

import java.util.Random;

public class Shuffle {
    private static Random rnd = new Random();

    public static void shuffle(Object[] a) {
        for (int i = 0; i < a.length; i++)
            swap(a, i, rnd.nextInt(a.length));
    }

    private static void swap(Object[] a, int i, int j) {
        Object tmp = a[i];
        a[i] = a[j];
        a[j] = tmp;
    }
}
  1. Java™ Puzzlers: Traps, Pitfalls, and Corner Cases Puzzle 45: Exhausting Workout
This puzzle tests your knowledge of recursion. What does this program do?

public class Workout {
    public static void main(String[] args) {
        workHard();
        System.out.println("It's nap time.");
    }

    private static void workHard() {
        try {
            workHard();
        } finally {
            workHard();
        }
    }
}
  1. Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

  2. Clock puzzles - find the angle between hr,min,sec handles, etc

  3. From Twitter http://qandwhat.apps.runkite.com/i-failed-a-twitter-interview/

"Consider the following picture:"

alt text

"In this picture we have walls of different heights. This picture is represented by an array of integers, where the value at each index is the height of the wall. The picture above is represented with an array as [2,5,1,2,3,4,7,7,6]."

"Now imagine it rains. How much water is going to be accumulated in puddles between walls?"

alt text

"We count volume in square blocks of 1X1. So in the picture above, everything to the left of index 1 spills out. Water to the right of index 7 also spills out. We are left with a puddle between 1 and 6 and the volume is 10."

Online Tests

  1. Test For Geeks, including java and android tests. Extremely challenging.
  2. Fizz Buzz Test
  3. Brainbench test

Fields

  1. Java Collection
  2. Multi Threading
  3. GC
  4. Design Patterns
  5. Algorithms
  6. Data Structure

Discussion

TODOS

  1. @知乎 如何面试android 工程师? 从哪些方面考察?
  2. 面试官如何写面试反馈?
  3. 整理一个PPT 出来, 分topic 出面试题, 做分享
  4. 整理知乎上的相关java / android 面试题

Android 面试题

  1. Android 中线程与线程,进程与进程之间如何通信?
  2. 解释 Binder 原理, 进程间通信
  3. activity,intent 和 service 是什么关系?
  4. handler 机制的原理是什么?
  5. 横竖屏切换时候 activity 的生命周期?
  6. 解释View 绘制过程
  7. 瀑布流如何回收资源
  8. 常用的Android 开源库有哪些, 如何选择?挑一个谈谈优缺点,如何改进?
  9. 什么情况下会出现ANR, 怎么找到原因, 如何解决?
  10. 起了很多线程, UI线程阻塞
  11. 后台线程, Service
  12. 异步线程
  13. listview 优化