商汤科技服务端开发一面面经

  1. 人生中学习和生活中最大的挑战是什么?
  2. 索引查找在Linux的磁盘上是怎么操作的
  3. 调大老年代对新生代有什么影响?调大新生代对老年代有什么影响?(唉,这个没想过,哪位大佬知道告诉一下)
  4. 说一下CMS垃圾回收器和G1收集器的特点,和收集过程。
  5. 那怎么判断一个一个数是不是2的幂次方,讲思路,写代码
  6. 我在jvm上运行一段java程序输出一条语句,它是怎么输出到屏幕上的
  7. 说一说计算机网络的七层结构
  8. 标记的时候怎么找出栈上的 GC Root?说出一种可能的方案,存在什么问题?
  9. 多线程你写过吗 有哪些应用场景
  10. Docker 有使用过和了解吗?Docker 和 JVM 的区别是什么?
  11. 集群和负载均衡的算法与实现?
  12. redis 和 MongoDB 的区别。几个概念对比,还有底层实现。
  13. POST和GET有什么区别?
  14. 数据库的事务隔离知道吗?
  15. 三次握手和四次挥手
  16. 当用户访问量到达亿级的时候,没法分表的情况下,如何优化mysql?
  17. hashmap 使用&运算的条件是什么,为什么长度是2的n次幂?ArrayList,LinkedList的源码和特性
  18. 写一段脚本实现将nginx的access.log日志中ip按访问量排行
  19. maven依赖树,maven的依赖传递,循环依赖
  20. 海量数据过滤,黑名单过滤一个 url。

编程题

给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果。 这个结果应该是不可约分的分数,即最简分数。 如果最终结果是一个整数,例如 2,你需要将它转换成分数形式,其分母为 1。所以在上述例子中, 2 应该被转换为 2/1。

  • 示例 1:

    输入:"-1/2+1/2"
    输出: "0/1"
    
  • 示例 2:

    输入:"-1/2+1/2+1/3"
    输出: "1/3"
    
  • 示例 3:

    输入:"1/3-1/2"
    输出: "-1/6"
    
  • 示例 4:

    输入:"5/3+1/3"
    输出: "2/1"