希望能帮助到大家,因为个人原因我投的都是上海的,所以机会也就比较少了。

[toc]

Sagreen 3.11 15.00-16.20 offer

顺序不保证,想起啥来写啥

一面

面试官比我大一届

  1. 介绍项目
  2. Redis 本身有队列功能,为什么还要实现
  3. ThreadLocal 说一下底层实现
  4. BigDecimal 机制说一下(答飞了,乱说了一同操作系统默认不支持,只支持浮点啥的,不是他想听的,那好像说蒙他了)
  5. ArrayList 说了下底层实现,是线程安全的嘛,如果要线程安全的是什么,CopyOnWriteArrayList 底层实现机制,讲了一通源码
  6. volatile 讲一下实现机制,原子性保证吗?
  7. AtomicInteger 怎么保证的
  8. 继续 Set 底层实现(有点儿蒙,Set 咋说,我问他是 HashSet 吗),他说那你说 HashSet 吧,感觉没啥好讲的,讲了为啥去重,常量 Value。
  9. HashMap 并发安全的吗?会出现什么情况?讲一下这个情况具体怎么出现的,如何避免?
  10. 除了 ConcurrentHashMap 和 HashTable 还有什么方法,Collections.synchronizedMap 怎么实现的。
  11. ConcurrentHashMap 知道的说一下,讲了知道的所有源码。1.7, 1.8 的对比,分段锁,桶锁,链表头插尾插等等等等
  12. Java 中有哪些锁
  13. synchronized,ReentrantLock 分别讲一下实现机制,synchronized 的锁优化,膨胀(面试官没问,我自己连带着说的,他没打断我)。
  14. ReentrantLock 公平锁,非公平锁源码讲了半天,重写的 lock 判断机制。
  15. AQS,AOS 讲了 AQS 的 state,Node 内部类,acquire 判断机制。AOS 干嘛的
  16. Semaphore 是干嘛的,和 Semaphore 功能相似的还有什么类。(CountDownLatch?)
  17. 线程池有哪几种,区别说一下,看过线程池那些源码,讲了 ctl,execute 怎么执行,Worker,keepAliveTime 什么时候起作用。(前一天刚开从一篇面经看到,还好复习了 execute -> reject -> run -> runWork -> getTask)
  18. GC 算法讲一下
  19. 如何判断对象是否需要 GC
  20. SpringMVC 的两连问具体忘了,好像是什么是否是并发执行?(都不会)
  21. 如果让你设计一个订单系统是同步的还是异步的,回答的异步,面试官问那订单还没下完就返回成功页面了?我解释说异步连带任务不是响应结果异步。
  22. 数据库了解不,讲一下有哪些索引,区别
  23. 有什么想问我的

就记得这么多了,小公司,原本是另一个面试官,结果临时有事,他是被临时分过来面我的,完全想到什么问什么,看我简历下面写的

Java:熟悉 Java 集合,并发编程,JVM,部分 JUC 常见类,阅读过部分 JDK 源码

然后问一块儿在上面打一个小勾,一轮技术面。

二面

大 leader 只有一个技术问题其他的闲扯成绩,上家公司做什么,还狂压我薪资,说我学分学分有点儿低压,这不行呀呢不行呀,行业不行呀。(微笑对待,你说的都对) 20分钟

  1. Java 中为什么拆箱装箱(~懵逼了)

总结:大 leader 感觉有点儿不专业了,拆箱装箱说成(in box,out box),而且感觉格局好小,好掉价。被一面面试官问完原本感觉这公司挺好,后面的大 leader 太掉价了,还有小公司这么能问惊了

缔安科技 3.12 hr 在跟踪

顺序不保证,想起啥来写啥

我去面的时候 Java 部门 leader 不在国内,然后公司核心部门技术总监面的我,搞 C++ 的。

因为他对 Java 不了解,我对 C++ 认知为 0,总共二十分钟面试。后来问 HR 说觉得我可以,但对他们部门没兴趣好像

一面 20 分钟

  1. 项目***能说一下,(为什么都不用我自我介绍呢)
  2. Redis 的问了一个忘了
  3. KMP 算法能讲一下吗,回答只是了解过复杂度来和 Trie 进行比较的。Trie 讲一下,讲完之后说前缀树呗?
  4. XSS 讲一下,除了 cookie 还能窃取什么?
  5. 项目中用了多线程? 你也知道线程间有线程调度的问题,你单 CPU 凭什么认为多线程能有优势,我回答我双核 4 线程
  6. 介绍他们部门,问我有意向做 C++ 吗

二面 20 分钟

晚上 9.45 准时打过来

  1. Java 垃圾回收的机制,怎么实现的(真泛)。讲了引用计数,GC Roots,4 个垃圾回收算法。
  2. 设计模式了解吗,单例模式什么时候适合用,并发请求时会有安全问题吗?安全的实现方式是怎样的?DCL
  3. MySQL了解吗?聊一下索引吧,为什么加索引,什么时候加索引,索引怎么实现的
  4. 前端经验有吗?
  5. 提问环节,问他对我面试评价,和建议(面试官说尽量不要说太细一个人说太多,虽然说这个行为挺好,但是你可以先问问面试官说,这里我也比较熟用给您说一下吗?)

最后给了 3 道编程题,第二天中午12点给他。

万得 3.13 10.15-11.20 offer 17.4w

顺序不保证,想起啥来写啥

笔试

先做了两道编程题,第一题必做,第二题选做,很水。搞笑的是,1 月份花了半个月刷了 100 道 leetcode,两个月没再碰,尽然屁也想不起来了。做了 1 道半,有思路但属于硬往出挤代码,不想浪费 HR 小姐姐时间了。

一面 1个小时

  1. 项目(又不用我自我介绍,白背了)
  2. Redis 常用数据结构说一下
  3. 异步队列怎么做的
  4. HTML 标签怎么过滤的
  5. ThreadLocal 讲一下
  6. 为什么要根据活跃用户和僵尸用户进行接口拆分(好像 Sagreen 也问到了) 怎么做的?
  7. Spring IOC 讲一下
  8. MyBatis SQL 注入讲一下,怎么避免
  9. @RequestMap,@PathVariable,@Mapper,@RequestParam
  10. 前台发来 json 数据怎么接收处理,@RequestBbody
  11. 画项目架构图
  12. RESTful 风格讲一下添加一个用户怎么写
  13. 有效的缩短了 46.1% 的用户平均请求等待时间怎么测的。
  14. 越权怎么做的?用的什么框架?
  15. BigDecimal
  16. 泛型的好处
  17. 线城实现的几种方式,区别
  18. 用户多个角色,每个角色有对应的权限,需要几个表,你怎么设计

他就问完了,(????),我觉得有点儿问的浅呀,这是觉得我不会?赶快问他,我还经常看一些 JDK 源码,需要给您讲一下吗。然后他就让我讲,我蒙了一下,一瞬间不知道讲哪里,蒙了 3 秒。3 秒后意识到这是补救的时候。

  1. 集合类,讲完 ArrayList,Vector,Collections.synchronizedList,CopyOnWriteList 之后讲 Set,讲到 HashSet 的 node 函数二分法,他说不用了,这么讲没完了。还说我这函数名都记得挺全啊。回答:微笑,看过很多遍(废话,专门背过,不过也确实看过很多遍老忘)
  2. 然后我说给您讲讲 HashMap?然后他让我继续讲,然后 HashTale,ConcurrentHashMap,1.7,1.8 然后 ReentrantLock,AQS,AOS
  3. 线程池 balabala (讲完线程池蒙蔽了,我还看过啥源码停了几秒)
  4. AtomicInteger 源码(讲完又懵逼了,边讲还边想我还看过啥,JUC 下很多都看过,但好像都想不起来了,不敢说)
  5. 实现想不到了,为了缓解尴尬,我数据库也了解的比较多一些,用给您说一下吗?说
  6. 存储引擎,索引。(又不知道该讲啥了)
  7. 分库分表,水平切分,垂直切分
  8. 问我什么时候需要分库,为什么分库?
  9. 读写分离,主从复制
  10. 知道代码层面怎么做吗? 回答:只简单了解过一些概念性知识,没有去做过。
  11. 我在等他问:他在等我继续说,然后我俩对视了一眼,一时间有些尴尬。然后和我说那就到这里吧

然后带我去找 HR 小姐姐填表,走在路上突然想起来 synchronized 实现机制没说,然后和他说需要我再讲一下吗,他说时间差不多了,就这吧。

最后期望薪资作死填了 13k,看了 offershow 万得的薪资之后,双非二本的自己感觉已经走远了。