Android 大厂面试真题解析大全,10 年 Android 开发经验
Java 相关
1.重载函数的签名(区别是否是重载函数)
答:方法名+参数类型+参数顺序(返回值不是)
2.finalize 的工作原理
答:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用 finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存.所以如果使用 finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。此外系统进行垃圾回收时并不保证一定会调用它,所以可以说它和对象被回收没有必然关系。
3.一个对象的创建过程
答:例如有一个 Dog 类:
1.即使没有 static,构造器其实也是静态方法,所以当首次创建 Dog 时或者 Dog 的静态域或者静态方法被访问的时候,Dog 的 class 对象会被加载。
2.在加载 Dog 的 class 的时候可能会发现其有基类,此时先暂停 Dog 的加载,转而去加载其基类。所以基类的 static 域比子类先初始化。
3.载入 class 文件之后,会创建一个该该类的 class 对象,所有关于静态初始化的动作会被执行,所以静态初始化只在 Class 对象首次加载时进行一次。
4.当使用 new 的时候,首先为 Dog 对象在堆上分配足够内存空间。这块内存控件会被清零,所有实例都被初始化成了默认值,包括基类。
5.执行所有字段定义处的初始化,从基类开始。
6.执行构造器。(在第一行会执行基类的构造器)
4.对象的销毁是按照创建的逆序来进行的。
5.final 的方法和类都不允许覆盖和继承。private 默认实现了 final。
6.简述内部类的特点
7.形式参数可被视为 local variable,也就是说形式参数相当于在方法中定义了一个局部变量 a,当传入 c 时,只是将 c 指向的对象给 a
8.finally 语句块是在 try 或者 catch 中的 return 语句之前执行的
9.简述 jvm 中默认的 classLoader 与功能
10.switch 语句后的控制表达式只能是 short、char、int、long 整数类型和枚举类型,不能是 float,double 和 boolean 类型。String 类型是 java7 开始支持
11.重写的特性
12.!=和==,当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同,比较内存地址
13.null 可以被强制类型转换成任意类型的对象,于是通过它来执行静态方法
14.如何终止一个线程
15.静态属性和静态方法是否可以被继承
16.列出各种 List,Set,Map,Queue 并说出他们的同与不同。
17.列出几种线程池
18.解释一下 java 内存模型
19.解释一下 java 代码的原子性
20.解释一下 volatile 字段
21.解释一下 synchronized 字段
22.Lock 的使用
23.wait()和 sleep()区别
24.死锁产生的条件
最后
最后为了帮助大家深刻理解 Android 相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的 24 套腾讯、字节跳动、阿里、百度 2019-2021BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和 PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
Android 基础知识点
Java 基础知识点
Android 源码相关分析
常见的一些原理性问题
希望大家在今年一切顺利,进到自己想进的公司,共勉!
评论