北京某游戏公司
1.介绍一下了解的一个项目。
2.组件话和模块化的区别?
组件化是基于重用,减少耦合;模块化是根据功能模块的不同而拆分的。其实组件化就是将一个app拆分成多个模块,每一个模块都是一个组件,开发过程中可以让这些组件相互依赖,也可以单独调试,最终打包时需要合并统一成一个apk
3.做了那些性能优化?
4.网络模型?tcp/IP在哪一层,tcp和udp的区别,为什么(没答好),tcp和http的区别?
分别是物理层,数据链路层,网络层,传输层,表示层,应用层;
5.Handler
6.线程同步的方式。这里问的很深
volatile关键字的原理,能保证原子性吗?
volatile不能保证原子性;首先明白什么是原子性:原子性:是指一个操作是不可中断的。即使是多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。
synchronized关键字,修饰方法,静态方法,代码块有什么区别?
1.修饰代码块,被修饰的代码块称为同步语句块,其作用范围是{}括起来的代码,作用的对象是调用这个代码块的对象;
2.修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;
3.修饰一个静态方法,其作用范围是整个静态方法,作用对象是这个类的所有对象;
4.修饰一个类,其作用部分是synchronized后面括号括起来的部分,作用的对象是这个类的所有对象
7.ThreadLocal原理
8.了解那些设计模式?
9.okhttp,
10.线程池的参数有几个各代表什么意思。
11.APP启动的流程。
12.还看过那些系统源码?
13.手写双重锁的单利模式,其中为什么要使用volatile关键字。
禁止指令重排