No3. 阿里网商银行一面
电话面,总计1小时20分钟
- 自我介绍
- 介绍一下主要项目中的关键和难点问题,用了哪些技术
Part1 先是针对简历中的项目的问题
简历中提到的技术和框架:
- RabbitMQ是什么?应用场景?底层的实现原理是什么?
- RabbitMQ在消息传递过程中是有出错的可能的?你们是如何解决?或者说RabbitMQ提供了什么机制来解决?
- 分布式的项目/任务中使用或了解过哪些中间件?
- Token是什么?是做什么用的?
- Session和cookie的区别?
- 如果用户A在Session中存放了一个新的数据,一段时间后用户A再来访问还能不能够拿得到之前存的数据,如果是用户B来拿,能否拿得到?
- Spring Cloud了解多少,你是怎样理解的?
- 什么是微服务?
- 什么是SOA?
- Spring了解多少?
多线程:
concurrentHashMap底层是如何实现的?
既然谈到CAS就详细介绍一下。
有没有什么场景是Volatile就可以保证线程安全的?
有哪些常见操作是具有原子性的?
除了CAS、Synchronized等一些锁,还能用什么方法解决多线程安全问题?
(TheadLock下去再看一下)
Part2 Java基础
集合类
- 说一下什么是集合类?
- HashMap的一个场景:如果我创建了一个A类的对象a作为Key插入到HashMap中,它有一些对应的value链式存储。我又创建了一个A类的对象a1,通过get()方法能够拿到a这个key下面对应的数据吗?
- 我怎么样做才能用a1这个对象拿到a这个key下面的value呢?(HashCode)
- 什么是浅拷贝和深拷贝?
JVM
- 说一下java内存结构和垃圾回收?
- 什么情况下会发生堆溢出?让你编个程序怎么写代码能造成堆溢出?
- 想要栈溢出应该怎么写代码?
Part3 计算机基础
计网
- 现在常用的网络模型是怎么样的?每一层都是什么功能?
- 现在的网络传输存在丢包现象,TCP能否保证不丢包?是如何保证的?
操作系统
- 进程和线程的区别?各自的应用场景?
- 进程间是怎样通信的?
数据库
- 什么是数据库索引?我们为什么要用数据库索引?
- 数据库索引是存在内存还是磁盘,为什么?
- 常用的索引方法有哪些?我们是如何使用索引的?
- 索引结构的哪些特性和特点会影响我们用索引查找的效率呢?
- 在B+树的一个中间层节点上,我们在这么多个Key中找到我们的目标采用的是什么查找策略?