2021年3月七牛云暑期测开实习面经

下次要记得拿张纸来写。
我以为要电脑,没想到不用,就手机说一说就行。
算法题:
根据一个相对字符串, 得到绝对路径。
我写,就口头给他讲一讲。
while(不为回车){
    char c = getchar();
    if( c== '/'){
        while( 读入后面的!= '/' 且不为回车){
            读入字符串
        }
        字符串入栈。
    }
    如果是‘。’ 那就不变
        如果是‘。。’ {,
            if(栈非空) pop
            else 啥都不做,停在根目录
            }
}

问我数组,数组arraylist满了怎么办? 我说变成两倍大,  现在仔细看看好像很复杂, https://blog.csdn.net/qq_26542493/article/details/88873168 有的时候加一个, 有的时候1.5倍。

1.ArrayList创建对象时,若未指定集合大小初始化大小为0;若已指定大小,集合大小为指定的大小;

2.当第一次调用add方法时,集合长度变为10addAll内容之间较大值

3.之后再调用add方法,先将集合扩大1.5倍,如果仍然不够,新长度为传入集合大小;


链表的时间复杂度, 双向链表时间空间复杂度。
然后问hashmap实现


如果开放寻址之后, 删除一个,会怎么处理? 加tag么? tag怎么变?
如果用冲突了用链表, 链表很大的时候怎么办? 我说不知道

HashMap在JDK1.8及以后的版本中引入了红黑树结构,若桶中链表元素个数大于等于8时,链表转换成树结构;若桶中链表元素个数小于等于6时,树结构还原成链表。因为红黑树的平均查找长度是log(n),长度为8的时候,平均查找长度为3,如果继续使用链表,平均查找长度为8/2=4,这才有转换为树的必要。链表长度如果是小于等于6,6/2=3,虽然速度也很快的,但是转化为树结构和生成树的时间并不会太短。

还有选择6和8,中间有个差值7可以有效防止链表和树频繁转换。假设一下,如果设计成链表个数超过8则链表转换成树结构,链表个数小于8则树结构转换成链表,如果一个HashMap不停的插入、删除元素,链表个数在8左右徘徊,就会频繁的发生树转链表、链表转树,效率会很低。


topK问题, 一个很大的文本文件,无法进入内存, 怎么选择出现频率最多的。
我那时候应该问问,是一个文件,我以为是多个文件。
一种方法是读出到几百万个小文件中, 同时计数
这个我没有想出来。 他说大数据联机处理也可以
问我多态是怎么实现的,我说override 和overload 。
线程怎么实现的, 我说runnable ,他说还有呢? 我说task, cached pool, 他叫我停下, 估计知道我要背书了。
问我锁, synchronize 现在没有lock用的多, 为什么? 我不知道
我问你们做啥的? 他说效率工具, 打包自动化, sici, 持续集成持续发布,  质量管理, 业务线自动化golang脚本

问的好简单,就只问了我会的数据结构和java,  计网操作系统数据库sql都没问,

#实习##测试开发工程师##面经##七牛云#
全部评论
你好,测开是不是主要看你简历写的内容,写什么问什么
点赞 回复 分享
发布于 2021-03-18 22:19
楼主有二面吗
点赞 回复 分享
发布于 2021-03-21 16:21
来面字节测开嘛,给你内推😁
点赞 回复 分享
发布于 2021-03-23 15:09

相关推荐

起名字真难233:人家只有找猴子的预算,来个齐天大圣他们驾驭不住呀😂😂
点赞 评论 收藏
分享
评论
1
7
分享

创作者周榜

更多
牛客网
牛客企业服务