这是一份京东秋招的面试笔试题试卷,快来看看你能答对多少吧~
差不多每一题后面都列出了相关的知识点,还有相关的具体的文章帮助你们更好的理解知识点。文末还会有大量我收集整理出来的BAT面试题PDF免费分享,领取方式见文末。
知识点:Java只能直接继承自一个父类,即只支持单重继承,而可以实现多个接口。
知识点:
Java创建线程有三种方式:
1.继承 Thread 类,重写 run() 方法;
2.实现 Runable 接口,重写 run() 方法;
3.使用Callable和Future接口创建线程。
参考:java 多线程总结(一) 创建线程的几种方法及对终止线程运行的讨论
线程间通信所使用的方法wait , notify , notifyAll 是Object类提供的方法:
关于第二个选项后续补充
知识点:
onSaveInstanceState()方法只有在activity异常终止(如:屏幕旋转)时才会调用。当Activity异常终止时,系统会调用onSaveInstanceState()方法来保存当前Activity的状态(调用发生在onStop() 之前);当Activity被重建之后,系统调用onRestoreInstanceState()方法来恢复Activity的状态(调用发生在onStart()之后)。
知识点:
Activity被强制关闭(即异常情况下),系统会自动调用onSaveInstanceState()方法和onRestoreInstanceState()方法,保存和恢复UI状态。
知识点:
进程死锁:如果多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,那么就会导致死锁的发生,也就是进程不能实现同步。
题目分析:
要保证无论如何都不发生死锁,就要从极端情况考虑:当四个并发进程都占有了4个资源时,再加上一个资源,就能保证至少有一个进程可以获得5个资源,从而保证不会发生死锁。即:4*4+1=17个。
参考博客:tcp关闭状态详解
题目分析:
常规思路分析的话,可以从最后一个入栈元素入手,分以下情况讨论:
特别说明:题目满足卡特兰数,
答案有争论,后续整理更新
知识点:^ 会匹配行或者字符串的起始位置;[^] 表示不接受该字符集合;
+ 表示重复1次及以上(1~n);
* 表示重复0次及以上(0~n);
? 表示重复0次或1次;
题目分析:
^d表示以 d 开头,d+ 表示d重复至少一次,[^d] +表示任意不含d的字符串。
题目分析:
第一次查找 (0+10)/2 = 5 下标为5的数:50<90;
第二次查找(6+10)/2=8 下标为8的数:90 。
题目分析:
根据前序遍历(中左右)序列可知,A为根节点,接下来看中序遍历(左中右)序列,则DBGE为左子树,CHF为右子书;接下来,看左子树的前序遍历序列:BDEG,所以左子树的根节点为B,那么左子树的左孩子和右子树分别为D和GE;接着看右子书的前序遍历序列:CFH,所以右子书的根节点为C,那么右子树的右子树为FH;以此类推即可得该二叉树。
知识点:
FileInputStream和FileOutputStream可以对文件进行读写;BufferReader和BufferWriter带缓存,也可以对文件进行读写。
知识点:
Last-Modified 标示这个响应资源的最后修改时间。
Etag web服务器响应请求时,告诉浏览器当前资源在服务器的唯一标识。
知识点: between 关键字是一个闭区间。
< | < |
---|---|
<= | <= |
> | > |
>= | >= |
知识点:shell函数在调用时直接写函数名,不带括号。
参考博客:shell中函数的定义和使用
知识点:
awk用法:awk 'BEGIN{执行前语句}{每一行执行的语句}END{所有行执行完后执行的语句}'
实例:累加每行第一列数字
awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'
也可以省略BEGIN
awk '{sum+=$1}END{print sum}'
知识点:
参考博客:Android事件拦截机制
知识点:
常用的布局优化方式有:
推荐一篇博客:一些你需要知道的布局优化技巧
参考博客:ANR问题总结
知识点:
题目分析:
题目分析:对于这个题,只需要知道静态块最先执行就可以得出答案。
测试博客:特地写了两个简单的类进行了测试
有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。
好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以评论留言。
这里是关于我自己的Android 学习,面试文档,视频收集大整理,有兴趣的伙伴们可以看看~
专注分享大型Bat面试知识,后续会持续更新,希望通过这些高级面试题能够降低面试Android岗位的门槛,让更多的Android工程师理解Android系统,掌握Android系统。喜欢的话麻烦点击一个喜欢在关注一下~