阿里新零售实习一面面经

# 阿里巴巴-新零售技术事业群-淘系技术部-商家开放平台 #

第一次参加面试,慌慌张张,听了很久的音乐才勉强冷静下来,Love Story减压有奇效

开头聊了聊一些小项目的技术选型和一些具体功能的实现,然后强行将将面试官诱导到某已上线的电商项目:
1 介绍下购买下单的流程?详细说一下整个交易链路?
选购 -> 下单 ->  添加地址、选择优惠券 -> 提交订单 -> 详细介绍了微信支付的流程(此处省略无数字)

2. 支付的流程挺复杂的,可以简化成一步吗?比如,前端直接拉起支付,在支付成功之后再向服务端发送支付成功的消息,这样可以吗?
不行,存在安全隐患,客户端可能会伪造支付成功的消息

3. int型的变量,如何将它转成String?
Integer.toString(xx)
(new Integer(xx)).toString()
其实还有String.valueOf(xx),面试没想起来 -_-||
这两个方法有什么区别吗?
第一个是静态方法,第二个要实例化对象

4. 有一个字符串池(比如一亿条),现在有一个新的字符串,如何判断这个字符串是否在字符串池中呢?
可以采用类似数据库的索引技术?
面试官评价:对这样的小任务来说,不经济
面试官提示:Hadoop的map和reduce听说过吗?将大任务拆分下来解决,再将结果合并
我: 可以将字符串分批加载到内存中,放到HashMap里判断
面试官:给出一个具体的解决方法?
没答出来...

5. 碰到过OutOfMemoryError吗?什么情况下遇到的?
比较少,大部分遇到的是NullPointerException

6. 那就简单说下NullPointerException?什么情况下会碰到?如何避免?
比如操作链表的时候;进行判空操作

7. 介绍下Java异常体系?有哪些常见的RuntimeException和非RuntimeException?
(比较简单,略)

8. 介绍JVM内存模型
线程共享部分 + 线程私有部分

9.有很多个任务,需要拿到它们的处理结果并汇总,怎么做?
可以采用线程池 + Future
更新:感谢牛友@q147258134,用CountDownLatch也是可以实现的
在这个场景下,你会选用哪种线程池模型?
newCachedThreadPool
线程池有哪些核心参数?新任务提交运行之后线程内的线程数是如何变化的?
corePoolSize、maximumPoolSize  (如何变化略)

简历里那个科研项目有论文吗?
没有,才搞了俩月
如果你做完这个项目会有论文产出吗?
找工作,科研项目已放弃 (*^▽^*)

面完后,小哥告诉我,快去填申请表,今年有笔试,笔试题目难度比较大,有时间限制,独立完成,尽量做的好一点,后面的面试可能也要现场做题
小哥:哪怕不会做,也要多写点,懂吧?万一就碰到了给分的点了呢
我:懂(小鸡啄米)

==================== 这是一条笔试即将凉凉的分割线 ======================
#阿里巴巴##校招##Java工程师##面经#
全部评论
提醒下,题三种:int类型变量没有toString()方法
1 回复 分享
发布于 2020-03-21 11:30
第四题还是要分情况 1、样本集重复率高的的情况下建trie-tree 2、一次型的用多线程分区,每个线程取游标定量检索当前分区,检索成功的interrupt所有线程 3、工程化/服务化的还是牺牲准确性用布隆过滤器,样本集要删的加计数,bit-set过80%的时候另起
1 回复 分享
发布于 2020-03-26 19:59
楼主挺强的,加油。
点赞 回复 分享
发布于 2020-03-20 21:36
只是为什么要用CachedThreadPool呢?
点赞 回复 分享
发布于 2020-03-20 21:39
我感觉第九题应该是想问你线程同步的内容,像countdownlatch之类的
点赞 回复 分享
发布于 2020-03-20 22:31
请问投过美团了吗 组内直招
点赞 回复 分享
发布于 2020-03-21 00:49
投了新零售,还没通知面试先把减压神曲收藏了
点赞 回复 分享
发布于 2020-03-21 20:43

相关推荐

2 30 评论
分享
牛客网
牛客企业服务