金山办公java开发工程师一面

  1. 怎么保证促销商品不会超卖?
  2. 判断是否存在线程竞争,为什么没有,synchronize锁优化
  3. 当用户访问量到达亿级的时候,没法分表的情况下,如何优化mysql?
  4. JVM如何加载一个类的过程,双亲委派模型中有哪些方法
  5. 本地缓存怎么优化空间?(提出 BitMap)BitMap 可行吗?怎么验证可行性?如果不可行,怎么证伪?
  6. 为什么hashmap1.8后面用红黑树了?红黑树和别的树有什么不同
  7. Redis 如何实现持久化?
  8. maven熟吗,如果遇到版本不匹配的问题怎么解决
  9. 简述zookeeper部署的时候以多少个实例部署,为什么?
  10. MySQL的ACID讲一下,延伸到隔离级别
  11. 服务器模型以及之间的区别
  12. TCP中的timewait是做什么的?(指的是四次挥手的那个等待时长,我听成了timeout,想给自己两个大嘴巴)
  13. 支付宝红包怎么实现?
  14. TreeMap有用过吗?
  15. 数据库中的事务是什么?
  16. jdk有研究过吗?我:研究过一点hashmap。 那你说一下哈希碰撞怎么解决的?我:忘了,大概记得1.8之后是尾插。(好尴尬) 已知有100个元素,那么hashmap默认容量应该是多少?我:100/0.75=132 所以取2的指数幂256(不知道算对没)
  17. 介绍jmm,各个区的功能
  18. synchronize 以及锁的优化 轻量级锁 偏向锁 重量级锁
  19. 算法设计方面有什么要注意的嘛? 最重要的就是要设计出好的数据结构,还有流程要理清楚...感觉答的不是很好....
  20. spring AOP IOC的原理
  21. 说说阻塞队列
  22. 什么是nginx的平滑重启,请简述其工作原理。

编程题

给你一个二进制字符串数组 strs 和两个整数 m 和 n 。

请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。

如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。

  • 示例 1:

    输入:strs = ["10", "0001", "111001", "1", "0"], m = 5, n = 3
    输出:4
    解释:最多有 5 个 0 和 3 个 1 的最大子集是 {"10","0001","1","0"} ,因此答案是 4 。
    其他满足题意但较小的子集包括 {"0001","1"} 和 {"10","1","0"} 。{"111001"} 不满足题意,因为它含 4 个 1 ,大于 n 的值 3 。
    
  • 示例 2:

    输入:strs = ["10", "0", "1"], m = 1, n = 1
    输出:2
    解释:最大的子集是 {"0", "1"} ,所以答案是 2 。