citi 的2018年面经(四场)

我在网上投的简历。citi recruiter特别好,每出一个新职位就给我发信,问我要不要申请。然后就安排面试,每次电面都过了,都拿到了onsite. 我也背运。第一次他们在内部调了个人,直接取消了onsite.第二次他们招了所谓的former employee。第三次的阿三问我一堆数据库的问题叫我设计索引,我没答上来。第四次是上周五电面的,还不知结果。第二次面我的那个组又有了新的opening,他们又说要考虑我但是月底才给结果。我可等不了他们的结果。我已经拿到了别的offer,要上班了。

phone interview

Tell me about yourexperience?What collection didyou use for list and map? What is the difference between linkedlistand arraylist?Can you use HashMap in multi thread code? Why you canuse concurrentHashMap in multi thread code?What do you knowabout multi thread programming?Talk aboutsynchronize key word.Talk about Javagarbage collectionWhen you increment anint variable, how to make it thread safe? Tell me the way except useatomic data type, synchronized ?


  1. Print Fibonaccinumber
  2. search in anarray. The order of the first half is the opposite of the order ofsecond half.
  3. lock question
  4. write code forproducer/consumer design pattern
  5. find the secondsmall number in a unordered array
  6. talk aboutfunction interfaces
  7. question aboutatomic boolean8.foreign keyviolation question


  1. write code to construct a binary tree,given an array with to make composite key unique?
  2. Do you knowatomic data type? When should we use them?
  3. Do you know younggeneration, old generation and permanent generation? What is theratio between young generation and old generation? Which one isbigger?
  4. what is the gitcommand to switch branch?
  5. what isdependency injection? What is the benefit of dependency injection?
  6. what isautowiring?
  7. what method doyou know of atomicBoolean? Explain how compareAndSet and getAndSetwork. If two threads call compareAndSet(false,true) what willhappen?
  8. Have you usedBenchmark?


AVP developer