Java后端 面试秘笈!

·  阅读 159

不管是学生还是在职工作的,面试都需要辅导,单靠自己搞也是能搞,只是某些学习这种东西很多时候需要一个局外人帮忙把关,也就是所谓傍观者清当局者迷

学生

学生时代面临就是校招,其中校招分秋招和春招。

下面我们来聊聊校招:

秋招的人数名额要多余春招,但是竞争更大,也就是难度更大了。秋招⼀般7⽉左右开始,⼤概⼀直持续到10⽉底。但是大厂(如BAT)都会早开始早结束,所以一定要把握好时间。春招最佳时间为3月份,次佳时间为4月份,进入5月份基本就不会再有春招了(金三银四)。

大家一定要把握好秋招,春招基本上都是补秋招的,并且秋招含金量比春招要高不少。

面试一般都是三轮起,像一线大厂基本上都不会少于5轮。

注意

我们在秋招的时候,注意很多大厂在接近10月那的几天,可能会关闭HC。另外,如果面试不成功,也不要太在意成功与失败,重点是我们要从中学到了什么找到了自己哪方面不足,调整好心态,继续再战,比较企业数量摆在那里的。最近两年受疫情影响,确实工作不好找。但是不好找工作,都是相对的,只要实力在,肯定不愁工作的,只要我们准备的充分,就没必要怕。

想查某个公司的薪资情况,给大家推荐一个小程序:offershow

校招信息

我们如何获取校招呢?还是给大家推荐一个非常牛的网站:牛客网

也可以在上面刷题,可以理解这个平台就是针对校招的。

在给大家推荐一个平台:超级简历

如果你是校招的话,点击“校招网申”就可以直接跳转到各大企业的校园招聘入口的页面。

如果你有认识的朋友在你意向的公司上班,那就直接找他帮忙内推。毕竟是自己人,可能会有惊喜!

关于宣讲会,我这里就不说了,我读的是温州大学,一个不入流的大学,大四去杭州下沙那边参加过,完全没什么优势,如果你的学校有优势,这种宣讲会一定要去哦!

基本篇

后端内容:刷 Leetcode、计算机网络、Java基础、JVM、并发编程、Redis、Spring MVC、MySQL、MyBatis、Spring Boot、Spring Cloud Alibaba

前端内容:html、css、jquery、vue

项目实战:Spring Cloud 项目 ,B站上找个项目做做,比如:电商项目、在线教育、互联网医疗、OA系统。

选择性:Dubbo、Zookeeper、RabbitMq

主要工具:Git、Maven、IDEA

内容看起来还是蛮多的,其中前后端内容中按照从左到右进行学习。因为是学生,肯定左边的最重要。

资料

上面的内容一给大家列出来,大家可以再想个技术平台,尤其是B站上,找找都有的。如果不愿意到处找,并且也不知道哪个更好,那可以找我。

面试篇

上面基本篇搞定了,就开始准备面试了,甚至可以和基本篇同步进行。

背八股文、模拟面试、HR常见面试题

八股文就不用说了,现在各大平台到处都是各种各样的。但是很少有系统的,大部分都是只有一部分。我自己写了一本《java面试小抄》现在已更新到第三版,我会根据大家的反馈和不断掂量,不断的更新面试小抄。

你也可以找我给你做模拟面试,通过三五轮的模拟面试,彻底解决掉自己的问题和一些不好的面试回答方式。避免没有准备好就出面试,从而带来机会的浪费。

在职

在职的面试,就不用慌,一步一步来,整理出自己的技术栈,然后逐个攻破,但是也还是说说,到底该怎么准备。

因为是已经工作了,所以重点肯定不是刷 Leetcode了,重心偏向于你使用过的技术进行深入的学习。

  • 系统的学习JVM
  • 深入学习并发编程,JUC下面相关并发工具类的源码
  • Spring 源码(Bean的生命周期、循环依赖源码等)
  • MyBSQL深入学习(事务底层实现原理、慢SQL、SQL执行原理、SQL优化等)
  • Redis深入学习(底层原理、缓存三大问题、分布式锁、延迟队列等)

至少要掌握分布式技术原理,比如说:分布式锁、分布式事务、负载均衡算法。

找工作

对于已经工作的你,如果想找工作,强烈建议找朋友内推。没有人帮忙内推,就可以去Boss直聘、拉勾网等平台进行投简历。据个人经验来说,只要你在Boss直聘上把你的简历一放开,基本上都会有人找你。但可能因为你的学历、专业、技能不是很常规,那可能就得自己手动投简历了。

以上,如果已经具备了,那就是真正的准备面试了。

  • 如果很着急的找工作,那就只能背背八股文,整理自己最熟悉的项目业务和项目中用到的技术栈。如果项目中的技术栈很low,那你就得取巧了,想想能不能把相关的技术用进去,比如说Redis做缓存,做分布式锁,消息队列能不能用进去。你写了总比没有写有亮点,反正面试官也不知道你到底有么有用。项目业务流程一定要熟悉,尽量多想想,深挖,想想当前方法行不行,能不能在优化。
  • 如果不是很着急,那就可以自己给自己列一个计划,逐个攻破,争取做到,只要我学过的,不管面试官怎么问,我都能说上个1、2、3。

模拟面试环节,这个环节一定要做,不然你就会使用自己的真实机会去尝试,模拟面试虽然不能完全和面试一样,但是一些常规的至少能体现出来(就是一些高频面试题,一定要回答的上来,不然你很容易被认为基础不扎实,只会皮毛等)。我们进来做到,在模拟面试就把自己的一些问题给暴露出来,然后可以针对性的进行准备。

真的要怎么准备面试,我也不想乱讲。因为每个人的情况不一样,每个人的底子不一样,每个人的知识面知识深度都是不一样的。所以,建议你找我模拟面试,我通过模拟面试,就差不多能知道你哪些地方欠缺。

你可以拿着我的建议+资料去准备面试。

视频资料

Java生产环境下性能监控与调优详解

40套JAVA企业项目【视频+源码】

RabbitMQ消息中间件技术精讲

Java读源码之Netty深入剖析

Java并发编程与高并发解决方案(完整版)

深度解剖dubbo源码

微服务架构的分布式事务解决方案

学习路线

面试小抄

Java面试题

  1. Java语言有哪些特点
  2. 面向对象和面向过程的区别
  3. 面向对象编程三大特性
  4. 八种基本数据类型的大小,以及他们的封装类
  5. 说说你对JDK、JRE、JVM的理解
  6. 说说标识符的命名规则
  7. 熟悉instanceof关键字的作用吗?
  8. 说说Java自动装箱与拆箱
  9. 说说重载和重写的区别
  10. Integer a= 127 与 Integer b = 127相等吗?
  11. 抽象类和接口的对比
  12. 什么是内部类?
  13. 内部类有什么优点?
  14. 内部类有哪些应用场景?
  15. 局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?
  16. 为什么 Java 中只有值传递?
  17. 熟悉JDK哪些包?
  18. 说说Java代码初始化顺序
  19. 说说你对 equals与== 的理解
  20. 说说hashcode的作用
  21. String、StringBuffer和StringBuilder
  22. 说说HashMap和HashTable的区别
  23. Collection与Collections的区别
  24. 熟悉 Java的对象引用类型吗?
  25. 说说泛型常用特点
  26. Java创建对象有几种方式?
  27. 有没有可能两个不相等的对象有相同的hashcode
  28. 深拷贝和浅拷贝的区别是什么?
  29. final有哪些用法?
  30. final finally finalize区别
  31. 说说this关键字的用法
  32. 说说super关键字的用法
  33. 说说this与super的区别
  34. static都有哪些用法?
  35. 平时使用static应该注意些什么?
  36. &和&&的区别?
  37. switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
  38. 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
  39. a=a+b与a+=b有什么区别吗?
  40. try catch finally,try里有return,finally还执行么?
  41. 说说你对Excption与Error包的理解
  42. Java 序列化中如果有些字段不想进行序列化,怎么办?
  43. 说说Java 中 IO 流
  44. 简单说说Java IO与 NIO的区别
  45. 说说你对Java反射的理解
  46. 说说反射机制的优缺点
  47. Object 有哪些常用方法?大致说一下每个方法的含义
  48. 获取一个类Class对象的方式有哪些?
  49. String s = new String("abc")创建了几个String对象?
  50. 说说你对String类的intern()方法的理解
  51. String 类的常用方法都有那些?
  52. String字符串为什么说是不可变?
  53. 简单说说Java中接口和抽象类的区别
  54. BIO、NIO、AIO 有什么区别?
  55. Files的常用方法都有哪些?
  56. JDK 1.8之后有哪些新特性?
  57. 什么是多态机制?
  58. 值传递和引用传递有什么区别?
  59. Class.forName和ClassLoader有什么区别 ?
  60. 简单说说List,Set,Map三者的区别?
  61. Collection和Collections的区别
  62. ArrayList 和 LinkedList的区别有哪些?
  63. 有数组了为什么还要搞个 ArrayList呢?
  64. ArrayList 与 Vector 区别呢?
  65. ArrayList是线程安全的么?
  66. 说说ArrayList 的扩容机制
  67. ArrayList在JDK1.7和JDK1.8版本初始化的区别
  68. 我想ArrayList集合中加入1万条数据,应该怎么提高效率?
  69. HashMap 和 Hashtable 的区别
  70. HashMap 的长度为什么是2的幂次方?
  71. HashMap 是线程安全的么?
  72. 什么是加载因子?加载因子为什么是 0.75 ?
  73. 为什么 HashMap 的初始化长度是 16 ?
  74. 为什么树化是 8,退树化是 6?
  75. 请说说 HashMap多线程操作导致死循环问题
  76. 为什么重写 equals 方法的时,需要重写 hashCode 方法呢?
  77. ConcurrentHashMap 和 Hashtable 的区别
  78. JDK1.8中满足什么条件后将链表转化成红黑树?又什么时候转回来?
  79. HashMap为什么会引入红黑树做查询优化呢?
  80. 为什么把8作为阈值?
  81. HashMap如何解决冲突?
  82. 我们自定义类来作为HashMap的key 吗?
  83. HashMap 的长度为什么是 2 的 N 次方呢?
  84. HashMap 与 ConcurrentHashMap的异同
  85. 简单说说HashMap的put方法过程
  86. 说说我们写的java程序是如何执行的?

Dubbo 面试题

  1. Dubbo是什么
  2. 什么是 RPC?
  3. 能说说RPC原理吗?
  4. 说说Dubbo的分层?
  5. 能说下Dubbo的工作原理吗?
  6. 在 provider上可以配置的 consumer 端的属性有哪些?
  7. Dubbo内置了哪几种服务容器?
  8. Dubbo需要 Web 容器吗?
  9. 为什么要通过代理对象通信?
  10. 说说服务暴露的流程?
  11. 说说服务引用的流程?
  12. 有哪些负载均衡策略?
  13. 服务上线怎么兼容旧版本?
  14. 说几个Dubbo 核心的配置
  15. 集群容错方式有哪些?
  16. 服务读写推荐的容错策略是怎样的?
  17. 如何禁用某个服务的启动检查?
  18. 说说你对Dubbo序列化的了解
  19. 知道Dubbo SPI机制吗?
  20. Dubbo服务之间的调用是阻塞的吗?
  21. 注册中心宕机了,有什么影响?
  22. 说说Dubbo的优先级配置
  23. Dubbo如何优雅停机?
  24. 怎么实现动态感知服务下线的呢?
  25. Dubbo的管理控制台能做什么?
  26. dubbo 协议为什么要消费者比提供者个数多?
  27. dubbo 协议为什么不能传大包?
  28. 说说dubbo 协议
  29. Dubbo 用到哪些设计模式?
  30. 如果让你实现一个RPC框架,你会怎么设计?
  31. Dubbo 和 Spring Cloud 的区别?
  32. 如何设计一个注册中心

JVM面试题

  1. Java 是如何实现跨平台的?
  2. 什么是 JVM ?
  3. 说说JDK、JRE、JVM的关系?
  4. 请你描述一下JVM 的内存区域?
  5. 运行时常量池的作用是什么?
  6. 直接内存是什么?
  7. 为什么使用元空间替换了永久代?
  8. 方法区、堆、栈之间到底有什么关系?
  9. 为什么需要两个大小一样的Survivor区?
  10. 新生代中Eden:S1:S2为什么是8:1:1?
  11. 请你描述一下 Java 中的类加载机制?
  12. 描述一下JVM加载Class文件的原理机制**
  13. 类加载器是有了解吗?
  14. 熟悉哪些类加载器?
  15. Java 虚拟机是如何判定两个 Java 类是相同的?
  16. 类加载器是如何加载 class 文件的?
  17. 说说什么是双亲委派模型以及作用
  18. 双亲委派模型的工作过程?
  19. 如何破坏双亲委派模型?
  20. 你知道哪些打破双亲委派机制的例子?
  21. 如何自定义类加载器?
  22. 对象分配内存是否线程安全?
  23. 在 JVM 中,对象是如何创建的?
  24. 内存分配方式有哪些呢?
  25. 对象一定分配在堆中吗?
  26. 请你说一下对象的内存布局?
  27. 对象访问定位的方式有哪些?
  28. GC是什么?为什么要GC
  29. 如何判断对象已经死亡?
  30. 说说你对Java 中四大引用类型的理解
  31. 如何判断一个不再使用的类?
  32. 了解finalize方法吗?
  33. 你知道哪些垃圾收集算法?
  34. 说一下 JVM有哪些垃圾回收器?
  35. 如何选择垃圾收集器?
  36. 简单说说你对G1收集器的理解
  37. ZGC了解吗?
  38. 能够触发条件 Full GC 有哪些?
  39. 说说垃圾回收过程
  40. 你知道哪些JVM调优参数?
  41. 8G内存的服务器该如何设置相应JVM参数?
  42. 如何排查线上系统CPU飙高
  43. 说说内存泄漏和内存溢出
  44. 生产环境服务器变慢,怎么办?
  45. JVM 监控与分析工具你用过哪些?
  46. 如何开启和查看 GC 日志?
  47. 你们生产环境用的什么JDK?如何配置的垃圾收集器?
  48. 怎么打出线程栈信息?
  49. 线上出现 OOM 的问题,怎么排查?
  50. MinorGC、MajorGC、FullGC 什么时候发生?
  51. 如何解决线上GC频繁的问题?
  52. 简述一下内存溢出的原因,如何排查线上问题?

MyBatis 面试题

  1. JDBC有几个步骤?
  2. 什么是MyBatis?
  3. 什么是ORM?
  4. 说说ORM的优缺点
  5. 说说MyBatis的优缺点
  6. MyBatis是如何进行分页的?
  7. 分页插件的基本原理是什么?
  8. 简述Mybatis的插件运行原理?
  9. 说说Mybatis的缓存机制
  10. MyBatis动态sql有什么用?
  11. Xml映射文件中有哪些标签?
  12. MyBatis是否支持延迟加载?
  13. 延迟加载的基本原理是什么?
  14. mapper.xml文件对应的Dao接口原理是?
  15. MyBatis中见过什么设计模式?
  16. Dao接口里的方法,参数不同时能重载吗?
  17. #{}和${}的区别是什么?
  18. MyBatis执行批量插入,能返回数据库主键列表吗?
  19. 不同的xml映射文件,id是否可以重复?
  20. MyBatis中Executor执行器的区别是?
  21. 为什么说MyBatis是半自动ORM映射工具?
  22. MyBatis全局配置文件中有哪些标签?
  23. 当实体类中的属性名和表中的字段名不一样时怎么办 ?
  24. 模糊查询 like 语句该怎么写?
  25. MyBatis构建步骤?
  26. 简述一下MyBatis的手动编程步骤?
  27. MyBatis工作的流程是?
  28. 如果是你来设计MyBatis,你会怎么设计?

并发编程面试题

  1. 说说Java中实现多线程有几种方法
  2. 如何停止一个正在运行的线程
  3. notify()和notifyAll()有什么区别?
  4. sleep()和wait() 有什么区别?
  5. volatile 是什么?可以保证有序性吗?
  6. Thread 类中的start() 和 run() 方法有什么区别?
  7. 为什么wait, notify 和 notifyAll这些方法不在thread类里面?
  8. 为什么wait和notify方法要在同步块中调用?
  9. Java中interrupted 和 isInterruptedd方法的区别?
  10. Java中synchronized 和 ReentrantLock 有什么不同?
  11. 有三个线程T1,T2,T3,如何保证顺序执行?
  12. SynchronizedMap和ConcurrentHashMap有什么区别?
  13. 什么是线程安全
  14. Thread类中的yield方法有什么作用?
  15. 说一说自己对于 synchronized 关键字的了解
  16. 说说你是如何使用 synchronized 的?
  17. Vector是一个线程安全类吗?
  18. volatile关键字的作用?
  19. 常用的线程池有哪些?
  20. 简述一下你对线程池的理解
  21. ThreadPoolExecutor 有哪些常用的方法?
  22. 线程池中submit()和 execute()方法有什么区别?
  23. 线程池中线程是如何复用的?
  24. 了解线程池状态吗?
  25. 锁的优化机制了解吗?
  26. 说说进程和线程的区别?
  27. 产生死锁的四个必要条件?
  28. 如何避免死锁?
  29. 线程池核心线程数怎么设置呢?
  30. Java线程池中队列常用类型有哪些?
  31. 线程池原理知道吗?以及核心参数
  32. 线程池的拒绝策略有哪些?
  33. 线程安全需要保证几个基本特征?
  34. 说一下线程之间是如何通信的?
  35. CAS的原理呢?
  36. CAS有什么缺点吗?
  37. 引用类型有哪些?有什么区别?
  38. 说说ThreadLocal原理?
  39. 为什么要用ThreadLocal?
  40. Entry的key为什么设计成弱引用?
  41. ThreadLocal真的会导致内存泄露?
  42. 如何解决内存泄露问题?
  43. 线程池中如何共享数据?
  44. ThreadLocal有哪些用途?
  45. 说说你对JMM内存模型的理解?为什么需要JMM?
  46. 多线程有什么用?
  47. 说说CyclicBarrier和CountDownLatch的区别?
  48. 什么是AQS?
  49. 什么是Callable和Future?
  50. 什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
  51. 什么是多线程中的上下文切换?
  52. 什么是Daemon线程?它有什么意义?
  53. 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

MySQL面试题

  1. 什么是 MySQL ?
  2. 简单说说 MySQL 的架构是怎样的
  3. 简述执行 SQL 语言的过程
  4. 三大范式?
  5. InnoDB 与 MyISAM 的区别?
  6. 自增主键理解?
  7. 为什么自增主键不连续
  8. Innodb为什么推介用自增ID?
  9. 说说MySQL中in 和exists的区别
  10. 什么是索引?有什么优缺点?
  11. 索引的类型有哪些?
  12. 索引有哪些种类?
  13. 索引底层数据结构?
  14. 索引的使用场景有哪些?
  15. Hash 索引和 B+树 的区别?
  16. B树与B+树区别?为何用B+树?
  17. 索引设计原则(查询快,占用空间少)
  18. 索引失效场景?
  19. 如何创建索引?
  20. 什么是聚簇索引,什么是非聚簇索引?
  21. 什么是回表?
  22. 非聚簇索引一定会回表查询吗?
  23. 联合索引的建立规则?
  24. 最左匹配原则?
  25. 什么是前缀索引?
  26. count(1)、count(*) 与 count(列名) 的区别?
  27. 一条查询SQL执行顺序是什么?
  28. 什么是触发器?触发器的使用场景有哪些?
  29. 百万级数据如何删除
  30. 普通索引和唯一索引怎样选
  31. 一条 SQL 查询语句是怎么执行的?
  32. 使用 Innodb 的情况下,一条更新语句是怎么执行的?
  33. 说说 MySQL 使用 explain 的关键字段
  34. 两阶段提交(一条更新语句怎么执行?)
  35. MySQL 的事务原理
  36. 什么是幻读,脏读,不可重复读呢?
  37. 事务的隔离级别有哪些?MySQL的默认隔离级别是什么?
  38. 为什么不要使用长事务?
  39. MYSQL的主从延迟,你怎么解决?
  40. ACID实现原理
  41. 说说 MySQL 中几种日志log
  42. 那你说说 redo log 与 bin log 的区别?
  43. 说说幻读的问题
  44. MySQL是如何解决幻读?
  45. MySQL中有哪些锁?
  46. 熟悉MVVC吗
  47. 你对MVCC原理理解?
  48. Read View里面包含些什么?
  49. 数据可见性规则是怎样实现的?
  50. 数据库表创建需要注意什么?
  51. 说说 InnoDB 引擎的行锁模式及其是如何实现的?
  52. 说说 MySQL 主从复制
  53. 一条 SQL 语句查询一直慢会是什么原因?
  54. 说说你的 SQL 调优思路
  55. MySQL 优化手段有哪些
  56. limit 1000000加载很慢的话,你是怎么解决的呢?
  57. 如何选择合适的分布式主键方案呢?
  58. SQL优化的一般步骤是什么
  59. 如果某个表有近千万数据,CRUD比较慢,如何优化?
  60. 如何写sql能够有效的使用到复合索引?
  61. 说一下大表查询的优化方案
  62. 什么是数据库连接池?为什么需要数据库连接池呢?
  63. 一条sql执行过长的时间,你如何优化,从哪些方面入手?
  64. 有关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?
  65. MySQL 数据库 CPU 飙升的话,要怎么处理呢?

RabbitMQ面试题

  1. 说说你对 MQ 的理解
  2. 说说MQ的优缺点
  3. 常用的消息队列性能对比
  4. 如何避免消息堆积?
  5. 如何避免重复消费?
  6. 如何保证消息不丢失?
  7. 如何保证消息顺序一致性?
  8. 推与拉取的架构模型是怎么样的?
  9. 有哪些消费模式?
  10. RabbitMQ 是什么?
  11. RabbitMQ特点?
  12. AMQP是什么?
  13. 熟悉AMQP协议吗?
  14. 说说AMQP模型的三大组件
  15. 说说你对Broker服务节点、Queue队列、Exchange交换器的理解
  16. 说说生产者Producer和消费者Consumer?
  17. 说说 RabbitMQ 的作用
  18. 为什么选择RabbitMQ
  19. RabbitMQ的特点是什么
  20. 生产者producer和消费者consumer有哪些知识点?
  21. RabbitMQ消息持久化中的坑
  22. RbbitMQ持久化的工作原理
  23. 持久化的优缺点
  24. 说说Rabbitmq的ack应答机制
  25. 简单说说RabbitMQ 的组成
  26. 简单说说RabbitMQ 的六种模式
  27. 说说存储机制
  28. RabbitMQ中消息可能有的几种状态
  29. 熟悉RabbitMQ 的队列结构吗?
  30. 交换器无法根据自身类型和路由键找到符合条件队列时,会如何处理?
  31. 如何保证消息的可靠性?
  32. 集群中的节点类型有哪些?
  33. 如何保证 RabbitMQ 消息队列的高可用?
  34. 说说你对交换器的理解
  35. 说说生产者消息运转多次
  36. 说说消费者接收消息过程
  37. 导致的死信的几种原因?
  38. 说说RabbitMQ 优先级队列
  39. 说说RabbitMQ 事务机制
  40. 生产者如何将消息可靠投递到MQ?
  41. MQ如何将消息可靠投递到消费者?
  42. RabbitMQ高级问题
  • MQ 挂了,消息没发出去。创建订单后面几个优惠券、积分的下游系统全都没有执行业务结算怎么办?
  • MQ 是高可用的,消息发出去了,但是优惠券结算业务报错了怎么办?因为这个是异步的,也不好去回滚
  • 消息正常发出去,消费者也接收到了,商户系统、优惠券系统都正常执行完了,积分业务报错了导致积分没结算,那这个订单的数据就不一致了
  1. 彩蛋

(更多请看我的《面试小抄》)

海量数据面试题

1、1亿个手机号码,如何统计出频率最高的前100个?

2、海量日志数据,提取出某日访问百度次数最多的那个IP。

3、搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。

4、有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词

5、有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序

6、给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?

7、在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。

8、给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?

9、Java算法实现,几分钟处理完30亿数据

智力面试题

  1. 飞机加油问题
  2. 有 100 个囚犯分别关在 100 间牢房里。牢房外有一个空荡荡的房间,房间里有一个由开关控制的灯泡。初始时,灯是关着的。看守每次随便选择一名囚犯进入房间,但保证每个囚犯都会被选中无穷多次。如果在某一时刻,有囚犯成功断定出所有人都进过这个房间了,所有囚犯都能释放。游戏开始前,所有囚犯可以聚在一起商量对策,但在此之后它们唯一可用来交流的工具就只有那个灯泡。他们应该设计一个怎样的协议呢?
  3. 家里有两个孩子,一个是女孩,另一个也是女孩的概率是多少?
  4. 参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机率。
  5. 一副牌52张,告诉瞎子里面有10张牌是正面朝上的, 要求瞎子把这52张牌分成两堆, 并且每堆牌正面朝上的张数相同,可任意翻动牌,但是一直不可以看。
  6. 有无限的水,5L和6L 的桶精确装4L 水
  7. 1000瓶药,有一些可能有毒,用老鼠来喝药,喝到有毒的一周就死。一周内至少需要多少只老鼠才能检测到哪些有毒
  8. 25匹马,5个赛道,最少需要比赛几次才能知道前3名
  9. 13个石头,有一个比较重其他都一样,用天平测量最多需要几次才能测出重的那个
  10. 五对夫妇举行家庭聚会 每一个人都可能和其他人握手, 但夫妇之间绝对不握手. 聚会结束时,A先生提问大家握手几次(很关键),结果是每个人的握手次数不相同。问A先生的太太握手几次
  11. 两人玩游戏,在脑门上贴数字(正整数>=1),只看见对方的,看不见自己的,而且两人的数字相差1。两人的对话: A:我不知道 B:我也不知道 A:我知道了 B:我也知道了。问A头上的字是多少,B头上的字是多少?
  12. 如果你是一名艾滋病患者,那么经过检测后,结果显示为阳性的概率为 99% 。如果你并没有携带艾滋病毒,经过检测后,结果显示为阳性的概率仅为 1% 。也就是说,这种设备较为‘可靠’, 不论你是否患有艾滋病,它基本能作出正确的判断。假如现在,用艾滋病检测试纸对自己进行一次 检测,检测结果显示是阳性,那请问你觉得自己得艾滋病的概率是多大?患艾滋病的概率是 1/10000 .
  13. 烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
  14. 有10瓶药,每瓶有10粒药,其中有一瓶是变质的。好药每颗重1克,变质的药每颗比好药重0.1克。问怎样用天秤称一次找出变质的那瓶药。
  15. 有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?
  16. 有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以每小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以外30公里每小时的速度和两辆火车现时启动,从洛杉矶出发,碰到另一辆车后返回,依次在两辆火车来回的飞行,直道两面辆火车相遇,假设洛杉矶到纽约的距离为s, 请问,这只小鸟飞行了多长距离?
  17. 你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到红球的准确几率是多少?
  18. 想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒上下?
  19. 病狗问题 一个住宅区内有100户人家,每户人家养一条狗,每天傍晚大家都在同一个地方遛狗。已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能够分辨其他的狗是否有病,现在,上级传来通知,要求住户处决这些病狗,并且不允许指认他人的狗是病狗(就是只能判断自己的),过了7天之后,所有的病狗都被处决了,问,一共有几只病狗?为什么?
  20. 桌上有100个苹果,你和另一个人一起拿,一人一次,每次拿的数量大于等于1小于等于5,问:如何拿能保证最后一个苹果由你来拿?
  21. 两位盲人 , 他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。 他们每人怎样才能取回黑袜和白袜各两对呢?
  22. 一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什幺帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?
  23. 有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是错的 , 你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签。
  24. 一个小猴子边上有100 根香蕉,它要走过50 米才能到家,每次它最多搬50 根香蕉,每走1 米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。
  25. 连续整数之和为1000的共有几组?
  26. 据说有人给酒肆的老板娘出了一个难题:此人明明知道店里只有两个舀酒的勺子,分别能舀7两和11两酒,却硬要老板娘卖给他2两酒。聪明的老板娘毫不含糊,用这两个勺子在酒缸里舀酒,并倒来倒去,居然量出了2两酒,聪明的你能做到吗?
  27. 在9个点上画10条直线,要求每条直线上至少有三个点?
  28. 五个囚犯先后从100颗绿豆中抓绿豆。抓得最多和最少的人将被处死,不能交流,可以摸出剩下绿豆的数量,谁的存活几率最大?
  29. 有甲、乙两人,其中,甲只说假话,而不说真话;乙则是只说真话,不说假话。但是,他们两个人在回答别人的问题时,只通过点头与摇头来表示,不讲话。有一天,一个人面对两条路:A与B,其中一条路是通向京城的,而另一条路是通向一个小村庄的。这时,他面前站着甲与乙两人,但他不知道此人是甲还是乙,也不知道“点头”是表示“是”还是表示“否”。现在,他必须问一个问题,才可能断定出哪条路通向京城。那么,这个问题应该怎样问?
  30. 甲、乙、丙三个人在一起做作业,有一道数学题比较难,当他们三个人都把自己的解法说出来以后,甲说:“我做错了。”乙说:“甲做对了。”丙说:“我做错了。” , 在一旁的丁看到他们的答案并听了她们的意见后说:“你们三个人中有一 个人做对了,有一个人说对了。”请问,他们三人中到底谁做对了?
  31. 50名运动员按顺序排成一排,教练下令:“单数运动员出列!”剩下的运动 员重新排列编号,教练又下令:“单数运动员出列!”如此下去,最后只剩下一个人,他是几号运动员?最后剩下的又是谁?
  32. 赵女士买了一些水果和小食品准备去看望一个朋友,谁知,这些水果和小食品被他的儿子们偷吃了,但她不知道是哪个儿子。为此,赵女士非常生气,就盘问4个儿子谁偷吃了水果和小食品。老大说道:“是老二吃的。”老二说道:“是老四偷吃的。”老三说道:“反正我没有偷吃。”老四说道:“老二在说谎。”这4个儿子中只有一个人说了实话,其他的3个都在撒谎。那么,到底是谁偷吃了这些水果和小食品?
  33. 某企业老板在对其员工的思维能力进行测试时出了这样一道题:某大型企业的员工人数在1700~1800之间,这些员工的人数如果被5除余3,如果被7除余4,如果被11除余6。那么,这个企业到底有多少员工?员工小王略想了一下便说出了答案,请问他是怎么算出来的?
  34. 老师让幼儿园的小朋友排成一行,然后开始发水果。老师分发水果的方法是这样的:从左面第一个人开始,每隔2人发一个梨;从右边第一个人开始,每隔4人发一个苹果。如果分发后的结果有10个小朋友既得到了梨,又得到了苹果,那么这个幼儿园有多少个小朋友?
  35. 有一个外地人路过一个小镇,此时天色已晚,于是他便去投宿。当他来到一个十字路口时,他知道肯定有一条路是通向宾馆的,可是路口却没有任何标记,只有三个小木牌。第一个木牌上写着:这条路上有宾馆。第二个木牌上写着:这条路上没有宾馆。第三个木牌上写着:那两个木牌有一个写的是事实,另一个是假的。相信我,我的话不会有错。假设你是这个投宿的人,按照第三个木牌的话为依据,你觉得你会找到宾馆吗?如果可以,那条路上有宾馆哪条路上有宾馆
  36. 一天,富翁的一个朋友急着找富翁,他知道要想找到富翁只能问兄弟俩,并且他也知道兄弟俩个的做事准则,但不知道谁是哥哥,谁是弟弟。另外,如果要知道答案,就必须知道今天是星期几。于是他便问其中的一个人:昨天是谁说谎的日子?结果两人都说:是我说谎的日子。你能猜出今天是星期几吗?
  37. 对地理非常感兴趣的几个同学聚在一起研究地图。其中的一个同学在地图上标上了标号A、B、C、D、E,让其他的同学说出他所标的地方都是哪些城市。甲说:B是陕西。E是甘肃;乙说:B是湖北,D是山东;丙说:A是山东,E是吉林;丁说:C是湖北,D是吉林;戊说:B是甘肃,C是陕西。这五个人每人只答对了一个省,并且每个编号只有一个人答对。你知道ABCDE分别是哪几个省吗?
  38. 已知:有N架一样的飞机停靠在同一个机场,每架飞机都只有一个油箱,每箱油可使飞机绕地球飞半圈。注意:天空没有加油站,飞机之间只是可以相互 加油。 如果使某一架飞机平安地绕地球飞一圈,并安全地回到起飞时的机场,问:至少需要出动几架飞机? 注:路途中间没有飞机场,每架飞机都必须安全返回起飞时的机场,不许中途降落。
  39. 两个直径分别是2和4的圆环,如果小圆在大圆内部绕大圆转一周,那么小圆自身转了几周?如果在大圆的外部转,小圆自身又要转几周呢?
  40. 在一个夜晚,同时有4人需要过一桥,一次最多只能通过两个人,且只有一只手电筒,而且每人的速度不同。A,B,C,D需要时间分别为:1,2,5,10分钟。问:在17分钟内这四个人怎么过桥?
  41. 提灯过桥问题?
  42. 有两个鸡蛋,如何最快的试出100层楼中刚好那一层扔下鸡蛋会碎?
  43. 在地球什么地方能够,往南走1公里,然后往东走1公里,再往北走1公里能回到原点?
  44. 一块N x M的巧克力,最少掰多少次可以分成1 x 1的巧克力?
  45. 有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?
  46. 一个房间里面有三盏灯,外面有三个开关,只进去一次怎么确定哪个开关对应那盏灯?
  47. 49个人中至少几个人生日是同一月?
  48. 一枚正反概率不一样的硬币,如何当一枚正常的硬币来用(正反概率相同)?
  49. 64匹马,8个赛道,找出跑得最快的4匹马,至少比赛几场?
  50. 有10瓶药,每瓶有10粒药,其中有一瓶是变质的。好药每颗重1克,变质的药每颗比好药重0.1克。问怎样用天秤称一次找出变质的那瓶药?
  51. 有八个大小相同的球,其中7个重量相等,有一个稍微重一点,如何用天平仅称两次就能确定哪个球更轻?
  52. 如何用3升和5升桶量取4升水?
  53. 1楼到n楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从1楼到n楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到「最大」的一颗?
  54. 七只老鼠,一百瓶药水,其中有一瓶是毒药,毒发时间为一天,使用一天时间检测出毒药?

常规资料

系统设计

关于系统设计,有以下内容:

  • 1、如何设计一个注册中心?
  • 2,、如何设计一个持久化框架?
  • 3、秒杀系统怎么设计?
  • 4、微博这类系统如何设计?
  • 5、抢红包如何设计?
  • 6、短网址如何设计?
  • 7、点赞系统如何设计?
  • 8、如何设计一个消息队列?
  • 9、如何设计一个缓存框架?
  • 10、如何设计一个Tomcat?
  • 11、如何设计一个RPC框架?
  • 12、如何设计一个百万级消息推送系统?
  • 13、如何设计一个订单系统?

gitcaht文章

以前闲着没事都会写点文章到上面去,能赚点零花钱,但是最近这个平台,很不给力了,什么人都能在上面写文章了,一个字:乱。还和csdn有一腿的,可惜了。

我在gitchat上的文章源文件都上传到百度盘星友群里了,自行下载。

下面是我的gitchat部分文章:

等。。。。

面试小抄

20w+字的面试小抄,包含以下模块:

后面的版本有所调整优化,相关重点知识点添加了参考文章和资料,增加了HR常问面试题等。

MyBatis源码分析

MyBatis源码分析我已更新到CSDN专栏的,同时也形成了pdf已上传到知识星球中。

源码核心流程图:

星球里还有MyBatis中文注释源码,已上传到百度盘里。

博客内容

JVM系列:关于类加载机制的五个核心点

JVM系列:JVM内存结构

JVM系列:GC算法和垃圾收集器的选择

JVM系列:常用命令详情

JVM系列:JVM GC 分析

JVM系列:JVM性能调优实战

JVM系列:JVM GC如何优化?

JVM系列:ZGC垃圾收集器详解

JVM系列:JVM优化,2个案例

JUC源码分析:线程池源码分析

JUC源码分析:ArrayBlockingQueue源码分析

JUC源码分析:SynchronousQueue源码分析

JUC源码分析:FutureTask源码分析

JUC源码分析:AQS 设计原理

JUC源码分析:AQS源码分析

JUC源码分析:线程池的使用

JUC源码分析:ReentrantLock源码分析

JUC源码分析:Condition 源码分析

JUC源码分析:ReadWriteLock源码分析

JUC源码分析:ThreadLocal源码分析

JUC源码分析:CountDownLatch

JUC源码分析:CyclicBarrier

JUC源码分析:Semaphore

JUC源码分析:CompletableFuture

Spring源码分析:启动流程

Spring源码分析:Bean生命周期

Spring源码分析:扩展点概览及实践

Spring源码分析:入门必读

Spring源码分析:BeanDefinition体系分析

Spring源码分析:手写Spring框架之IOC

Spring源码分析:AOP基础知识

Spring源码分析:事务管理

Spring源码分析:Spring MVC核心知识

Spring源码分析:手写Spring框架之IOC之应用

Spring源码分析:手写Spring框架之AOP

Spring源码分析:手写Spring框架之事务管理

Spring源码分析:深入分析IOC(上)

Spring源码分析:深入分析IOC(下)

Spring源码分析:深入分析 DI

Spring源码分析:循环依赖

Spring源码分析:@Async注解

SpringMVC源码分析:Servlet体系结构

SpringCloud源码分析:微服务常识

SpringCloud源码分析:Eureka介绍和使用案例

SpringCloud源码分析:Eureke环境准备

SpringCloud源码分析:Eureke Server 初始化过程

SpringCloud源码分析:Eureke Client 初始化过程

SpringCloud源码分析:Eureke 服务注册过程

SpringCloud源码分析:Eureke 服务续约

SpringCloud源码分析:Eureke 获取注册表

SpringCloud源码分析:Eureke服务下线

SpringCloud源码分析:Eureke 自我保护机制

SpringCloud源码分析:Eureke server 集群

Spring Cloud 源码分析:Nacos原理分析

Spring Cloud 源码分析:Nacos 作为注册中心

Spring Cloud 源码分析:Nacos 作为配置中心

JDK源码分析:String

JDK源码分析:ArrayList

JDK源码分析:HashMap

JDK源码分析:Integer

JDK源码分析:LinkedList

JDK源码分析:HashSet

JUC源码分析:ConcurrentHashMap

JDK源码分析:System

JDK源码分析:Object

JDK源码分析: LinkedHashMap

JDK源码分析:TreeMap

Redis面试篇:Redis是单线程还是多线程?

Redis面试篇:Redis单线程为什么还这么快

Redis面试篇:Redis中的I/O多路复用模型

Redis面试篇:Redis中的跳表原理

Redis面试篇:Redis 中 key已经过期了,但为什么内存并没有释放?

Redis面试篇:删除key的命令会阻塞Redis吗?

Redis面试篇:主从复制、哨兵、Cluster三种集群模式优缺点

Redis面试篇:Redis集群数据hash分片算法原理

Redis面试篇:Redis线上问题,导致缓存雪崩

Redis面试篇:Redis缓存雪崩、缓存击穿、缓存穿透

Redis面试篇:分布式锁

Redis面试篇:如何保证缓存和数据库的一致性?

Redis面试篇:Redis集群为什么推荐奇数个节点

腾讯 Java 社招面试经历记录(001)

腾讯 Java 岗位社招面试记录(002)

字节后端实习面试记录(003)

腾讯 Java 岗位面试记录(004)

腾讯 PCG 后端面试记录(005)

分布式技术:从0到1设计订单系统

三年必备, HashMap 源码

美团一面面经

字节面经

阿里菜鸟实习二面

域起网络面试经历

跟谁学面试记录

快手(一面gui)面试记录

学堂在线面试记录

销售易面试记录

搜狐面试记录(一面,等二面)

(美团地图)一面面试记录

美团(美团地图)二面

美团(美团打车)一面

字节跳动(gui)

蚂蚁金服(共5面)

网易社招面试记录

字节跳动(共5面,已上岸)

京东科技后端开发一、二、HR面面经

性能优化-实战-案例一

性能优化-实战-案例二

性能优化:实战-案例三

.....

星球内容

思维导图

干货文档

已上传干货文档150篇

等等。。。。

 

解锁

扫描下方二维码,加入我的知识星球,解锁上面所以资料。

还可以帮你修改简历、做一次模拟面试(我时间宽裕的情况下,可以增加)

加入后记得加我微信,星球里有我的微信。

另外,你也可以不进知识星球,直接待在我的群里或加我微信好友,什么东东群里也是可以解决的,解决不了的,直接私信我。备注“知识星球

分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改