公司是做翻译系统的,感觉还蛮厉害的。有人做系统也有些写Python做机器学习的模型。通过远程电话面试,面试官非常友善耐心和蔼,中途也会给提示, 通过面试我学到很多,推荐厉害的朋友去 。一面:1 讲一讲自己擅长的技术或者中间价?2 Redis做持久化有哪些方法? AOF和RDB2.1 Redis的集群是怎么同步的?Redis的哨兵是什么?3 用没用过线程池,讲一讲Java的线程池? NewFixedThreadPool NewCachedThreadPool NewSingleThreadExecutor NewScheduleThreadPool 4 ScheduledThreadPoolExecutor的参数已经里面的含义?corePoolSize: 当有新任务时,如果线程池中线程数没有达到线程池的基本大小,则会创建新的线程执行任务,否则将任务放入阻塞队列。当线程池中存活的线程数总是大于 corePoolSize 时,应该考虑调大 corePoolSize。 maximumPoolSize: 当阻塞队列填满时,如果线程池中线程数没有超过最大线程数,则会创建新的线程运行任务。否则根据拒绝策略处理新任务。非核心线程类似于临时借来的资源,这些线程在空闲时间超过 keepAliveTime 之后,就应该退出,避免资源浪费。 long keepAliveTime: 非核心线程空闲后,保持存活的时间,此参数只对非核心线程有效。设置为0,表示多余的空闲线程会被立即终止。 TimeUnit unit, BlockingQueue workQueue : 存储等待运行的任务。 ThreadFactory threadFactory : 每当线程池创建一个新的线程时,都是通过线程工厂方法来完成的。在 ThreadFactory 中只定义了一个方法 newThread,每当线程池需要创建新线程就会调用它。 RejectedExecutionHandler handler :当队列和线程池都满了时,根据拒绝策略处理新任务。4.1 后续问题: 如果线程池的corePoolSize队列满了的话,怎么办? workQueue 是干嘛的? 什么是非核心线程,什么是核心线程? 5 为什么用Niginx 做负载均衡?6 讲一讲项目经历?7 数据库的索引是怎么实现的? 用了什么数据结构? 什么用B+树不用B树? 8 如果一个查询语句是 Select ..... where 字段A and 字段B and 字段C 那么加了索引查询是怎么进行的? 9 什么是Java的伪共享? ...查看更多