目录

面试题-01

一、数据结构与算法基础

  1. 说一下常见的几种排序算法和分别的时间复杂度
  2. LRU算法,slab分配,如何减少内存碎片
  3. 描述一下链式存储结构

二、Java基础

  1. 接口与抽象类的区别
  2. ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和优点?
  3. Java中一个字符占多少个字节,扩展再问int、long、double占多少字节?
  4. 如何用Java分配一段连续的1G的内存空间?需要注意些什么?
  5. NIO是什么?适用于何种场景?select/epoll的区别,多路复用的原理?

三、JVM

  1. JVM堆的基本结构
  2. 常用的GC策略,什么时候会出发YGC,什么时候会出发FGC?

四、多线程、并发

  1. 如何实现一个线程安全的数据结构
  2. 如何避免死锁
  3. volatile关键字的作用
  4. 什么是条件锁、读写锁、自旋锁、可重入锁

五、框架使用

  1. Spring事务的传播属性是怎么回事?他会影响什么?
  2. Jvm 内存模型
  3. 线程间共享数据
  4. zookeeper原理
  5. jdk 源码
  6. java动态代理

面试题-02

一、Java基础和高级

二、spring框架

三、java多线程常见问题

四、网络通信

五、常用Linux命令

六、数据库MySql

七、设计模式(写代码)

八、算法&数据结构&设计模式

九、分布式缓存

新浪金融

新浪金融

饿了么

mysql 如何保证数据不丢失

mq 如何保证数据不丢失

zookeeper 选主逻辑,如何保证数据一致 遵循的cap原则的那两个

写一个阻塞队列

线程池,fixpool ,无限加入任务的结果

1 == new Integer(1); 结果