第1轮:
这是笔书面答卷, 涉及20个MCQ问题(与我申请Java开发人员时有关的Java)和4个编码问题, 其中三个需要在纸上完成
编码问题:
查找编号最高的行2的排序矩阵中具有1和0作为列值的1
递归反向链接列表
狭窄的道路, 一次只能有单边通行。同步代码以避免死锁
计数信号量问题, 其中一个资源为N个实例。同步访问资源。
与Strings初始化, Java 8功能, JIT, 互斥量, Singleton模式, Streams等有关的MCQ问题有时不止一个是正确的。
第二轮:这是第一轮的技术讨论
要求解释编写的程序。
在先前公司中的角色。
对先前公司完成的项目的架构和理解。
熟悉, 使用过并询问过Singleton的设计模式
第3轮:在笔和纸上进行了一个小时的设计轮次。同时询问了HIGH和LOW级设计。
设计一个可以有N个客户的系统。每个客户可以根据P个服务数量向M个客户收费。
系统应具有以下特点
N总是可以增加或减少
M总是可以像酒店价格一样增加或减少, 因此需要实施可变定价方案
服务也可以增加或减少
系统一次可以服务数百万客户
系统应具有可扩展性和容错能力。
所请求的内容应尽快提供, 以尽量减少空间。
第四轮:设计技术讨论
缓存实现。
Hashmap实现。
数据结构实现只能存储重复项
实施一项服务, 该任务由10个线程并行完成, 我们必须像文件下载管理器一样在整体进度中更新每个线程的任务进度