Android&Java面经

美团 Android 开发一面

2017-04-12  本文已影响114人  LilacZiyun

** Time:** 2017.04.12 17:00 (15:54 电话通知 17:00 面试)
** 面试时长:** 40 mins

Question List:

自我介绍

** Java 基础:**

  1. Java 的基本数据类型
  2. break 和 continue
  3. Java 中的访问修饰符
  4. LinkedList 和 ArrayList
  5. 面向对象的特点
  6. 如何有效统计类的实例个数
  7. 静态内部类和非静态内部类
  8. 多线程中 synchronized 的使用,如何、何时
  9. Java 类加载机制
  10. static synchronized method(){} 使用的是哪个对象的锁
  11. sleep 和 yield 和 wait

** Android 基础:**

  1. Activity 的加载模式
  2. singleInstance 和 singleTask
  3. process 的作用
  4. 动画种类及区别
  5. Handler Looper 原理
  6. 一个线程有几个 Handler, 几个 Looper
  7. 如何保证一个线程只有一个 Looper 的

** 其它:**

  1. 校招笔试题最后一题考察的是什么,还记得么?(/衰,笔试题是什么都忘了)
  2. 让查了一下,笔试题是:一段音律中找出最长的递增音律(其实就是一串数字中找最长递增子序列)
  3. Android 是如何学习的?自学 OR 课程?
  4. 关于美团,你有什么想了解的?

** 部分题目解析: **

  1. static synchronized method(){} 使用的是哪个对象的锁
    对象锁:JVM 在创建对象的时候,默认会给每个对象一把唯一的对象锁,一把钥匙
    类锁:每一个类都是一个对象,每个对象都拥有一个对象锁
    ** 注: **
  2. 对象锁钥匙只能有一把才能互斥,才能保证共享变量的唯一性;
  3. 在静态方法上的锁(用的是类锁),和实例方法上的锁(用的对象锁),默认不是同样的,如果同步需要指定两把相同的锁;
  4. 关于同一个类的方法上的锁,来自于调用该方法的对象,如果调用该方法的对象是相同的,那么锁必然相同,否则就不相同。比如 new A().x() 和 new A().x(),对象不同,锁不同,如果A的单例的,就能互斥;
  5. 静态方法加锁,能和其他所有加锁的静态方法互斥;
  6. 静态方法加锁,和 xx.class 锁效果一样,直接属于类。
上一篇 下一篇

猜你喜欢

热点阅读