历年阿里面试题汇总

  1. Volatitle的特征?
  2. Volatitle的内存语义?
  3. Volatitle的重排序?
  4. 内存屏障/内存栅栏?
  5. happens-before原则?
  6. 手机扫二维码登录是怎么实现的?
  7. Java 线程有哪些状态,这些状态之间是如何转化的?
  8. List接口、Set接口和Map接口的区别
  9. Cookie和Session的区别?
  10. Java中的equals和hashCode方法详解?
  11. Java中CAS算法?
  12. TimSort原理?
  13. comparable与comparator的区别?
  14. 手写单例模式(线程安全)
  15. Java线程间的通信方式?
  16. Java8的内存分代改进?
  17. 对Java内存模型的理解以及其在并发当中的作用?
  18. Arrays和Collections 对于sort的不同实现原理?
  19. 对于Java中多态的理解?
  20. Session机制?
  21. Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?
  22. Spring AOP 实现原理?
  23. Servlet 工作原理?
  24. Java NIO和IO的区别?
  25. Java中堆内存和栈内存区别?
  26. 反射讲一讲,主要是概念,都在哪需要反射机制,反射的性能,如何优化?
  27. 如何保证RESTful API安全性 ?
  28. 如何预防Mysql注入?
  29. 微信红包怎么实现?
  30. 分布式事务的一致性?
  31. nio的底层实现?
  32. 秒杀系统的设计?
  33. 缓存击穿有哪些解决方案?
  34. 一致性Hash算法的原理?
  35. 强一致性、弱一致性、最终一致性?
  36. redis内部原理?
  37. zookeeper如何实现数据同步的?
  38. redis和Memcached的区别?
  39. zookeeper内部原理(各种一致性算法)?
  40. dubbo的实现原理?
  41. 分布式锁的实现?
  42. 线程池的概念?
  43. 阻塞队列的概念?
  44. ArrayBlockQueue是怎么保证多个线程不会取到同一个任务的?
  45. HashMap的底层原理?
  46. concurentHashMap的底层原理?
  47. JVM能创建的最大线程数是由谁限制的?
  48. HashMap什么时候会造成线程安全问题?
  49. Mysql分页查询越来越慢的原因?
  50. ReentrantLock和synchronized的区别?
  51. hashcode相等的两个对象一定相等吗?equals了?反过来相等吗?
  52. 介绍一下集合框架?
  53. 线程池用过吗?都有什么参数?底层是怎么实现的?
  54. synchronize和Lock接口的区别是什么?synchronize什么情况下是对象锁?什么情况下是全局锁?为什么?
  55. ThreadLocal如何使用的?说出在项目中的例子?底层实现是什么?
  56. 请介绍一下JVM内存模型?用过哪些垃圾回收器?
  57. 线上频繁发生full gc如何处理?CPU使用率过高怎么办?说出你的思路和处理方法?
  58. 知道字节码吗?字节码都有哪些指令?
  59. 讲讲类加载机制?都有哪些类加载器?这些类加载器都加载哪些类文件?说说你在项目中用到类加载器的例子?
  60. 知道osgi吗?他是如何实现的?
  61. 请问你做过哪些JVM方面的优化?使用的什么方法?达到了什么效果?
  62. 使用mysq索引都有哪些规则?索引是什么数据结构?B+tree和B tree的区别是什么?
  63. mysql有哪些存储引擎啊?都有什么区别?
  64. 设计高并发高可用系统时数据库层面设计该怎么设计?
  65. 数据库锁都有哪些?如何实现的的?
  66. 数据库事务都有哪些?
  67. 如何设计可以动态扩容缩容的分库分表方案?
  68. 用过哪些分库分表方案?都有什么优点和缺点?说一下他的底层如何实现的?
  69. 我现在有一个未分库分表系统A,以后系统需要分库分表B,请问,线上如何动态的由A切换到B?
  70. 分布式事务知道吗?它是如何实现的?若在通信过程中,出现网络原因,如何解决?
  71. 为什么要分库分表?
  72. 分布式寻址方式都有哪些?知道一致性hash吗?手写一下java实现代码?
  73. 你若用userId取模分片,我要查询连续时间段里的数据怎么办?
    74.如何解决分库分表的主键问题?有什么实现方案?
  74. redis和memcached什么区别?为什么单线程的redis比多线程的memcached效率要高?
  75. redis有什么数据类型?都在哪些场景下使用?
  76. redis主从复制如何实现的?redis的集群模式如何实现?redis的key是如何寻址的?
  77. 使用redis如何设计分布式锁?说一下实现思路?使用zk可以吗?如何实现?这两种有什么区别?
  78. 知道redis 的持久化吗?底层如何实现的?有什么优点缺点?
  79. redis过期策略都有哪些?LRU算法知道吗?写一下java代码实现?
  80. 说一下dubbo的实现过程?注册中心挂了可以继续通信吗?
  81. zookeeper原理知道吗?项目中都用到zookeeper哪些功能?其实现算法知道吗?说一下大概原理?
  82. dubbo支持哪些序列化协议?知道hessian的数据结构吗?PB知道吗?为啥他的效率最高?
  83. netty知道吗?netty可以做什么?NIO,BIO,AIO都是什么?有什么区别?
  84. dubbo负载均衡策略和高可用策略都有哪些?动态代理策略都有哪些?
  85. 为啥要进行系统拆分?不进行拆分可以吗?dubbo和thrift什么区别?
  86. 为什么使用消息队列?消息队列有什么优点和缺点?
  87. 如何保证消息队列高可用?如何保证消息不被重复消费?
  88. kafka,activemq,rabbitmq,rocketmq都有什么优点缺点?
  89. 如果让你设计一个消息队列?该如何进行架构设计,说一下你的思路?
  90. es的工作 过程是如何实现的,他是如何实现分布式的的?
  91. es在数据量很大的情况下(数十亿),如何提高查询效率?
  92. es的查询是一个怎么的工作过程?底层的luncence介绍一下?倒排索引知道吗?es和mongodb有什么区别?使用场景都有哪些?
  93. 如何设计一个高并发高可用系统?
  94. 如何限流?工作中是怎么做的?说一下具体实现?
  95. 缓存如何使用?缓存使用不当会造成什么后果?
  96. 如何熔断?熔断框架都有哪些?说一下具体原理实现?
  97. 如何降级?如何进行系统拆分?如何进行数据库拆分?
  98. 一次http请求的完整过程?
  99. 长连接 vs 短连接 区别?
  100. JDK7和JDK8的新特性?
  101. Get 和 Post的区别?分别应用的场景?
  102. Java默认序列化如何做的?哪些字段不会被序列化?
  103. 对线程monitor的理解?
  104. 锁的优化策略?
  105. SQL的ACID原理?
  106. Java异常的层次结构和继承关系?
  107. Java中重载和重写有什么区别?分别用什么关键字?
  108. 对乐观锁和悲观锁的理解?
  109. 抽象类和接口的差别?
  110. 基本排序和查找算法?
  111. 如何用栈实现队列?
  112. 你知道几种设计模式?单例模式是什么?Spring中怎么实现单例模式?
  113. java 中所有类的父类是什么?该类有哪些方法?
  114. 独立设计一套高并发的分布式登陆系统?
  115. 面对高并发你怎么处理?
  116. http1.1和http1.0的区别?
  117. mybatis的加载原理?
  118. 一次url请求的过程?
  119. 拦截器的原理?
  120. Spring对一个bean的创建、使用和销毁的源码?
  121. CMS回收器的回收过程
  122. java性能调优过程?
  123. springMVC具体实现的流程

你可能感兴趣的:(历年阿里面试题汇总)