网易杭研java一面
约的6.45面试,结果5点过10分就通知面试了,赶紧上线开始(最后问了一下,说是看我很早就签到了,就提前开始了.....我只是不小心点到了........)
总共用时约30min
- 首先是常规自我介绍
- 我看你笔试成绩还不错,基础应该很好吧(就我这也能叫不错???是不是有什么误解????),我们来问点java(以下顺序不一定,太紧张面完忘一半了,全靠回忆)
- 讲讲java内存模型(我觉得他想让我讲java内存结构,我讲了每个线程有存储变量的副本后他一脸疑惑,但又顺着我的思路问下去了)
- 那你这个int变量被一个线程修改之后其他线程怎么知道呢?(说了volatile关键字)
- 那volatile是怎么样保证有序性和可见性的呢?(忘....忘了)
- 你刚才讲的是int变量有副本,那我要是一个对象呢?
- 多线程如何修改这个对象的属性?如何保证线程安全?(讲到了synchronized和锁)
- synchronized可以修饰哪些地方?同步方法是锁住了什么?(我说要是非static的是锁住了对象,static是锁住类,面试官表情又一脸疑惑....)
- 那我现在有一个父类synchronized修饰非static方法和两个子类,现在两个子类调用这个方***发生竞争吗?(一脸懵,盲猜) static的呢?为啥?(饶了我吧,混子本质暴露了)
- 线程池参数?从0开始一直往线程池扔任务(无限个),讲讲这中间发生的过程
- 注解有用过吗?@Autowired 和 @Override 有什么区别呢?不是功能上,是本质上(我:.....我不知道啊)
- 我现在要在代码中添加打印日志的功能,怎么实现?(说了AOP)
- spring中还有一个重要的东西IOC,讲一讲
- 我看你项目是秒杀系统,你这个数据库是你设计的吗?有哪几张表?
- 订单表里面有哪些字段?哪些字段加了索引?
- 我现在要查询某一个商家某段时间内的订单金额,sql语句怎么写?
- 你刚才这句SQL要怎么建索引?
- 要是查询某个用户某段时间内的所有订单呢?怎么样分页呢?
- 你这句SQL可以用两个索引吗?(我:.....我..不太清楚)
- 我看你用了Redis,怎么保证数据一致性的?
- 差不多就这些了,你有什么要问我的吗?(我:啊?就结束了?不写代码吗?面试官:我们有时候是要写的....)