京东提前批Android开发一面面经
开场介绍+问项目的一些事情
学科基础课
计网:
1.说说OSI的七层模型。
结合它与TCP/IP的对比说的,少答了一层会话层。
2.说说TCP与UDP的区别。
3.TCP三次握手的过程,为什么要三次握手而非两次握手?
操作系统
经典老番:线程和进程的区别。
数据结构与算法
1.你知道哪些排序算法?
2.快速排序的过程,它的时间复杂度是多少,是否为稳定的排序方法?
Java基础
1.接口和抽象类区别。
2.static修饰字段、方法、类的区别。
Java多线程
1.synchronized修饰一个实例方法和静态方法的区别。
Java数据容器
1.ConCurrentHashMap看过吗,简述它和HashMap、HashTable的区别,哪一个性能最好?
Android开发
1.子线程能直接创建Handler并且使用吗?为什么不能?
2.子线程能直接修改UI吗?如果要修改有哪些办法?
3.简述Handler的工作过程。为什么主线程不需要创建一个Looper就可以使用它?
4.Activity的启动过程有哪些(standard、singleTop、singleTask、singleInstance),singleTask启动过程的生命周期方法?如果用startActivityForResult()启动singleTask的活动,会发生什么?(最后一个没答上来)
5.Android应用class加载的过程,与直接使用JVM提供的类加载器有什么异同?双亲加载模型的好处?
6.ART模式安装应用会发生什么,JIT、AOT的异同。
7.用过WebView吗,怎么样让界面上的JS和Java代码通信?
其他
1.写过Shell脚本么,会哪些常见的命令,主要在什么场合写Shell脚本。
2.用过Python么,为了解决什么问题写Python代码。
智力题
一个3L和一个5L的杯子,你有无限多的水,怎么样获得4L的水?
反问环节
1.部门主要做什么的
2.部门有用Flutter、Kotlin这些吗
后续:当晚发邮件通知过了,第二天复试
#面经##Android##Java##京东#