Java基础
进程和线程的区别;
Java的并发、多线程、线程模型;
什么是线程池,如何使用?
数据一致性如何保证;Synchronized关键字,类锁,方法锁,重入锁;
Java中实现多态的机制是什么;
如何将一个Java对象序列化到文件里;
说说你对Java反射的理解;
同步的方法;多进程开发以及多进程应用场景;
在Java中wait和seelp方法的不同;
synchronized 和volatile 关键字的作用;
服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达;
抽象类与接口的区别;应用场景;抽象类是否可以没有方法和属性;
静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?
修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法;
说说你对泛型的了解;
Java的异常体系;
如何控制某个方法允许并发访问线程的个数;
动态代理的区别,什么场景使用;
Dex加载过程和优化方式;
Jvm和Gc机制;
常用的设计模式。
数据结构与算法
堆和栈在内存中的区别是什么(数据结构方面以及实际实现方面);
最快的排序算法是哪个?给阿里2万多名员工按年龄排序应该选择哪个算法?堆和树的区别;写出快排代码;链表逆序代码;
求1000以内的水仙花数以及40亿以内的水仙花数;
子串包含问题(KMP 算法)写代码实现;
万亿级别的两个URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分组->多文件读写效率->磁盘寻址以及应用层面对寻址的优化)
蚁群算法与蒙特卡洛算法;
写出你所知道的排序算法及时空复杂度,稳定性;
百度POI中如何试下查找最近的商家功能(坐标镜像+R树)。
遍历二叉树
自己集合实现一个队列
自己实现线程安全类
快速排序和冒泡的排序,怎么转换一下。
其它
死锁的四个必要条件;
常见编码方式;utf-8编码中的中文占几个字节;int型几个字节;
实现一个Json解析器(可以通过正则提高速度);
MVC MVP MVVM; 常见的设计模式;写出观察者模式的代码;
TCP的3次握手和四次挥手;TCP与UDP的区别;
HTTP协议;HTTP1.0与2.0的区别;HTTP报文结构;
HTTP与HTTPS的区别以及如何实现安全性;
都使用过哪些框架、平台;
都使用过哪些自定义控件;
介绍你做过的哪些项目;
非技术问题汇总
研究比较深入的领域有哪些;
对业内信息的关注渠道有哪些;
自己最擅长的技术点,最感兴趣的技术领域和技术点;
项目中用了哪些开源库,如何避免因为引入开源库而导致的安全性和稳定性问题;
时针走一圈,时针分针重合几次;
现在下载速度很慢,试从网络协议的角度分析原因,并优化(网络的5层都可以涉及)。
经验
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。