阿里妈妈广告部二面凉经
1、我的问题,这种综合题没准备过,慌了,啥也没想到。
2、题目的原因,我看了不少的面经了,问这种综合题的真挺少见,丫的,拧螺丝就拧螺丝,造什么火箭。
基础题1:一颗矮的索引树和高的树,核心的时间差异在哪儿
MySQL索引的深挖,我虽然模模糊糊提到了IO,但也是没能答好。
innodb的索引是聚簇索引,索引和数据是存放在一起的,因此整个索引的大小会很大,难以将所有的索引加载到内存当中,这时候就要依赖磁盘IO。可以认为每个索引节点存储在一个磁盘页当中,每次向下搜索就要进行一次IO操作,这是最费时间的部分。B+树因为更加矮胖,IO操作要小于B树,因此时间更短。
基础题2:操作系统创建进程的过程
以Linux为例,Linux所有的进程都是root进程创建的子进程,创建子进程主要有以下几个操作:
- 申请一个空白PCB
- 申请资源,比如内存
- 填写PCB
- 把子进程放进准备队列
基础题3:Spring中AOP实现机制
JDK的动态代理,具体不展开了。
https://blog.csdn.net/csujiangyu/article/details/53455094
综合题1:AB使用消息队列联系,若B的消费能力降低,要求设计一个机制,让消息堆积在A的输入处
懵逼,咋写。
没用过消息队列,回去学。
综合题2:有意栋层高为x的楼,两个鸡蛋,测算出从哪一层楼下落鸡蛋会碎裂。
懵逼,咋写。
参考这个:https://blog.csdn.net/wolinxuebin/article/details/47057707
先假设,最小的次数为x次。
首先在x层摔,那么会出现两个结果:
1、碎了,为了找出那一层碎了,第二个鸡蛋必须从1到x-1进行遍历的摔
2、没碎,那么第二次就在x+(x-1)楼层摔。
3、如果在x+(x-1)楼碎了,那么同1,遍历x+1~x+(x-1)-1
4、没碎,那么同2,就在x+(x-1)+(x-2)层摔
…
最后我们将会得出这样一个楼层公式x+(x-1)+(x-2)+…+1 = x(x+1)/2。
这个公式有什么意义呢?
有, x(x+1)/2 >= 100,这样才能顺利的解除x。
有人说,x(x+1)/2 = 99就可以,如果鸡蛋在99层都没碎,那么必定是100层。 我想说谁告诉你记得一定会碎!
那么我们就顺利的解除 x>=14。
综合题3:2T日志,存了3个字段IP、时间、域名,要求输入域名和一段时间,给出所有的IP
懵逼,咋写。
我觉得如果日志按照时间排好了,就算直接查问题也不大,应该吧,可能是这样,我不知道,算了,不管了,去你大爷的,先吃饭去了。
#实习##Java工程师##面经#引用内容