音视频时代你还不会 NDK 开发?看完必懂
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 核心高级技术 PDF 文档,BAT 大厂面试真题解析】点击:Android架构视频+BAT面试专题PDF+学习笔记即可获取!
评论