Java/大数据 实习菜鸡面试总结

简单的也记不清了,一部分记得住的。

Java

  1. HashMap 底层数据模型?为什么采用链表散列?java8和之前的区别?为什么采用红黑树。

    • 扩容机制。为什么扩容2倍?
    • 如何解决Hash冲突?
    • 当向链表插入新Entry时插入头部还是尾部?Java8的区别?
    • hashmap为什么线程不安全。如何实现线程安全?
    • synchronized,synchronizedmap,concurrenthashmap的区别和概念?concurrenthashmap为什么快?
    • synchronized关键字是否可以加载 .class
  2. 内部类有哪些,具体用途。

  3. Spring中用到了哪些设计模式?具体用在哪?手写单例模式

  4. 单例模式的双检锁是什么?

  5. Mybatis如何实现批量插入?除foreach之外的方法?

  6. Spring是多线程还是单线程?

  7. 线程池的优点和用处?

  8. 新生代什么时候升老年代?GC流程? 永久代和元空间?

  9. token的优点。如何避免伪造token。

  10. 如何实现分布式Session。

  11. 悲观锁和乐观锁的使用场景和实现手段。

  12. 如何实现Cookie跨域?

  13. HTTPS的加密原理?HTTP1.1和1.0的区别?长连接和短连接的区别?

  14. TCP和UDP的使用场景?

  15. Spring和Mybatis的事务管理。具体场景如何使用?

  16. 什么叫线程安全什么叫不安全?手改代码实现线程安全。

  17. 手写动态代理。

  18. Spring AOP具体用在哪?

  19. 如何避免死锁?

  20. 线程调度算法?

数据库

  1. 什么场景下使用联合索引?模糊查询如何使用索引?全文索引的使用?
  2. 为什么联合索引匹配最左原则?
  3. 优化查询的手段?
  4. 手写多表关联查询SQL。
  5. Redis每个数据类型的适用场景?Redis持久化。Redis的IO模型。
  6. Redis实现秒杀系统。
  7. NoSQL的优缺点和使用场景。
  8. HBASE的存储结构,设计rowKey.
  9. Mysql的数据引擎,使用场景和区别。
  10. Redis是单线程还是多线程。

算法

  1. 各种树的区别,红黑树的用途,如何保持平衡?手写实现。
  2. 手写排序算法和一些算法题。
  3. 推荐算法。

大数据

  1. MapReduce的原理。
  2. sqoop的使用。
  3. 根据场景手写HSQL。
  4. Hadoop和Spark的使用场景。
  5. 正则爬虫的设计。
  6. kafka的使用。
  7. zookeeper的用途。
  8. 主从结构的一些讨论。
  9. Python的一些问题。

Linux

  1. 关键字检索。统计行数。性能监控。文件查找。
  2. 常用命令,具体使用。

其他

  1. logstash如何实现增量更新。

  2. ElasticSearch的分词策略。

  3. ElasticSearch的数据类型。

  4. ElasticSearch的原理。

  5. Nginx的具体配置和用途。

你可能感兴趣的:(java)