小米面试

总共有两面


一面:

1、自我介绍一下

2、项目做的目的

3、滴滴白盒测试的分支覆盖率等要求有哪些

4、测试平台的开发中遇到了什么问题,印象最深的是什么

以上的问题总共花了15分钟

5、Exception和Error的区别

6、未检查异常为什么不需要捕获

7、throw和throws有什么区别,throw可以抛出error吗

throws作为方法签名的一部分,会抛出代码里没有处理的异常

throw抛出实例化的对象

throw可以抛出throwable的所有子类,当然包括error

8、知道threadLocal吗

9、synchronized和lock的区别,是否可重入?代码里有synchronized(this)会发生什么,它的原理,提示:java对象,头信息?wait和sleep的区别?

10、有遇到过什么线程安全的问题吗?线程安全是什么意思?

11、hashmap为什么是线程不安全的?concurrenthashmap为什么是线程安全的?

12、hashcode的返回值是什么?hashcode和equals的作用是什么?

13、有看过红黑树的原理吗?

14、有遇到过死锁问题吗?

15、java是值传递还是引用传递?分析一下。如果是string,传什么。

16、设计模式有了解嘛,写两个单例模式不要枚举、要线程安全。

17、java有什么引用类型,各自在gc上的体现是什么。为什么会有软、弱引用?

强、软、弱、虚

软引用可做高速缓存

18、gc算法了解哪些,对应的垃圾收集器有什么?CMS的缺点是什么,可以解决吗?

parnew是serial的并行版本和serial一样,新生代复制、老年代标记整理

复制-serial

标记清除-cms

标记整理-g1、serial old

cms内存对象是连续分配的,产生内存碎片,解决这个需要设置参数,gc后去整理。不过影响性能,

所以直接用g1。

截止目前共用时45分钟

19、写一个生产者消费者算法

20、先说两个最熟悉的排序算法的时间复杂度和算法稳定性。他们的思路分别是什么。写一个归并排序。

21、写一个,判断一个数奇偶性

位运算比较快


二面:

1、如何设计测试平台,从哪几个方面考虑?

可以检测代码规范、接口功能

2、白盒测试主要是做什么的?

白盒测试是一种测试方法,而单元测试是测试过程

3、用过java的哪些容器,分别描述一下?

4、list的查找复杂度是多少?hashset的添加复杂度是多少?

5、实现一个LRU的cache,要用哪种容器?

ConcurrentLinkedHashMap

以上的问题总共用了19分钟

6、写代码,树的层次遍历

7、写代码,合并两个有序链表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值