Android6年:面试阿里35K岗,三道题被干掉

前言从业十多年 , 我从一位向往大厂的面试者成为了一个大厂面试官 , 身边很多从事Android 开发的朋友都不时咨询如何才能进大厂 。
的确 , 进大厂对于大多数人来说 , 绝不只是谈资 , 而是一种技术追求 。 像阿里、腾讯、字节这样的大厂 , 技术氛围和技术规范都明显优于体量较小的公司 , 业务场景也更加丰富、更具挑战性 。 在大厂锻炼几年 , 可以更好地提升个人能力 , 对以后的职业规划也有更多选择 。
话虽如此 , 要拿到大厂offer并不容易 。 简历投递如同大浪淘沙 , 面试过程也是竞争激烈 。 特殊时期大厂需求降低 , 要求反而更高 。 没有十足准备 , 很难通过层层筛选 。 不少Android人的问题并不是技术功底不过关 , 而是没有形成系统、全面的知识体系 , 总是被面试官问得哑口无言 。
结合自己多年大厂面试官的经历 , 我将这些年常问的知识点从头梳理 , 整理成100道大厂核心面试题 , 涵盖了大厂必考点、高频点和涨薪点 , 相信对大家准备面试会有一定帮助 , 也能解决一部分开发人在日常项目中遇到的问题 。
这些点一共分成 3大类 , 分别是:Java面试题、Android面试题、高级开发技术面试题 。 我把关于这些问题的拆解与思考 , 整理成一个 pdf , 限于篇幅 , 这里就不一一列出了 。 希望大家能从中有所启发、收获 。
Android6年:面试阿里35K岗,三道题被干掉文章插图
一、Java面试题一、Java面试题
熟练掌握Java是很关键的 , 大公司不仅仅要求你会使用几个api , 更多的是要你熟悉源码实现原理 , 甚至要你知道有哪些不足 , 怎么改进 , 还有一些Java有关的一些算法 , 设计模式等等 。
(一)Java基础面试知识点

  • Java中==和equals和hashCode的区别
  • int、char、long各占多少字节数
  • int与integer的区别
  • 探探对java多态的理解
  • String、StringBuffer、StringBuilder区别
  • 什么是内部类?内部类的作用
  • 抽象类和接口区别
  • 抽象类的意义
  • 抽象类与接口的应用场景
  • 抽象类是否可以没有方法和属性?
  • 接口的意义
  • 泛型中extends和super的区别
  • 父类的静态方法能否被子类重写
  • 进程和线程的区别
  • final , finally , finalize的区别
  • 序列化的方式
  • Serializable 和Parcelable 的区别
  • 静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?
  • 静态内部类的设计意图
  • 成员内部类、静态内部类、局部内部类和匿名内部类的理解 , 以及项目中的应用
  • 谈谈对kotlin的理解
  • 闭包和局部内部类的区别
  • string 转换成 integer的方式及原理
(二) Java深入源码级的面试题(有难度)
  • 哪些情况下的对象会被垃圾回收机制处理掉?
  • 讲一下常见编码方式?
  • utf-8编码中的中文占几个字节;int型几个字节?
  • 静态代理和动态代理的区别 , 什么场景使用?
  • Java的异常体系
  • 谈谈你对解析与分派的认识 。
  • 修改对象A的equals方法的签名 , 那么使用HashMap存放这个对象实例的时候 , 会调用哪个equals方法?
  • Java中实现多态的机制是什么?
  • 如何将一个Java对象序列化到文件里?
  • 说说你对Java反射的理解
  • 说说你对Java注解的理解
  • 说说你对依赖注入的理解
  • 说一下泛型原理 , 并举例说明
  • Java中String的了解
  • String为什么要设计成不可变的?
  • Object类的equal和hashCode方法重写 , 为什么?
(三) 数据结构