美团(30道面试题)

#

java虚拟机内存模型

内存溢出一般发生在哪个区?永久代会不会导致内存溢出?

动态加载类的框架了解哪些?

动态代理一般有哪几种实现方式?动态代理的应用场景有哪些?

栈会不会溢出?栈溢出一般抛什么异常?jvm在哪里设置栈的大小?设置的参数是什么?

jvm的垃圾回收机制?

java类加载机制?如何实现自定义类加载器?findClass与loadClass的区别?

String、StringBuffer、StringBuilder的区别?对应的使用场景?

如何实现不可变的类?

浅复制和深复制?怎样实现深复制?

HashMap、HashTable、ConcurrentHashMap的区别?

CAS是一种什么样的同步机制?

spring加载bean的流程?

java线程池?线程池构造函数的几个参数含义?keepAliveTime解释一下?

一个接口,要去调用另外5个接口,每一个接口都会返回数据给这个调用接口,调用接口要对数据进行合并并返回给上层。这样一种场景可能用到并发包下的哪些类?你会怎么去实现这样的业务场景?

CountDownLatch和CyclicBarrier的区别?

线程加锁有哪些方式?synchronized和lock的区别?

volatile关键字的作用?为什么使用AtomicLong而不使用Long?AtomicLong的底层是怎么实现的?

mysql的存储引擎有哪几种?

sql优化有哪些着手点?组合索引的最左前缀原则的含义?

springmvc处理请求的流程?

spring的事务怎么使用?事务回滚?自定义异常?

脏读?幻读?

tcp四次挥手的过程?TIME_WAIT为什么至少设置两倍的MSL时间?

了解哪些开源的中间件?缓存?消息?分布式框架?

用到过哪些设计模式?单例模式的实现?

数据库的脏读,幻读,不可重复读出现的原因原理,解决办法

数据库的隔离级别、MVCC

乐观锁、悲观锁、互斥锁、读写锁的原理实现与区别

一致性hash算法原理与应用

CAP原则

  • 一致性
  • 可用性
  • 有效性

CAS操作

  • 在多线程的时候 当使用外置锁的时候 会用到CAS操作

map想过面试题

  • 新建 Map map = new HashMap() 不占内存
  • 使用put的时候 才开始开辟内存
  • jdk7:数组+链表
  • jdk8:数组+链表+红黑树 链表的长度大于8 –>红黑树 <–链表长度小于6