阿里后端暑期实习凉凉面经(一面)
211本硕 实验室用C/C++不用java 自学半年左右 面试时长70分钟 部门好像是支付宝
1.c++和java的区别是什么,有何优劣
2.数据库的加密和安全性(啊啊啊我没复习这个 胡说一通)
3.讲讲netty(扯了点NIO的原理)
4.讲讲select/poll/epoll的区别(扯了一下他们的数据结构)
5.java中list和set的区别(有序,无序,可重复,不可重复)
6.set的底层数据结构(真的不会,愣了一会以后猜了个红黑树,好像猜对了,不过面试官好像看出来我是猜的……然后呵呵一笑)
7.set的继承接口和子类(狂问set……)
8.hashmap的底层数据结构
9.哈希冲突时解决方案(我说了一个链表一个再哈希)
10.链表解决法和再哈希法的时间复杂度分别是多少(链表应该是O(1),再哈希我说了个O(n))
11.synchronized锁的用法和几个特征(没答全)
12.synchronized锁是如何被抢占(这个至少应该说个interrupt )
13.公平锁和非公平锁的区别
14.redis的内存淘汰机制(太尴尬,把lru说成lau 被面试官实力纠正了一波 菜!!!)
15.讲讲线程池的几个参数(核心线程,任务队列,最大线程,然后我把增长策略扯了一会)
16.当负载逐渐降下来以后线程池的运行机制(没答上来 高并发这部分真的是太菜了)
17.平常会用什么垃圾回收器(我说了个单线程serial,面试官表示很惊讶hhh)
18.聊各种垃圾回收器(这个应该全说对了,但是我忘了parallel scavenge这俩单词 直接给他说简称ps收集器hhh,然后我说G1是1.7新出的收集器被面试官实力纠正:“是java8”)
以上共耗时45分钟
接下来是手撕代码 题比较简单
先是倒置一个数字 考虑正负号(-123---->-321) 以前做过 直接写
然后扩展,如果加了小数点该怎么办
我的方案是转字符串 然后split 然后字符串逆置 最后也撕出来了
手撕代码耗时大概20分钟
然后就闲聊了一会 结束 应该是凉了 主要崩在高并发 因为这部分确实学的不深而且缺乏实践经验 而且因为是人生第一次面试大厂 所以过于紧张
一些会的也没说出来 希望以后可以稍微从容一点吧呜呜呜
#阿里巴巴##实习##面经##校招#