2020最新的大厂面试题,以下面试题能答出70%你就可以去试试。话不多说,直接上题:

阿里(60道面试题)

1.Java事件机制包括哪三个部分?分别介绍下。

2.使用线程池的原因?

3.线程池的作用有哪些?

4.几种常见的线程池及其各自的使用场景是怎样的。

5.线程池都有哪几种工作队列?

6.怎么理解无界队列和有界队列?

7.线程池中的几种重要的参数及流程说明。

8.什么是反射机制?

9.说说反射机制的作用。

10.反射机制会不会有性能问题?

11.你怎么理解http协议?

12.说说http协议的工作流程。

13.http有哪些请求提交方式?

14.http中的200,302,403,404,500,503都代表什么状态?

15.http get和post有什么区别?

16.你怎么理解cookie和session,有哪些不同点?

17.什么是web缓存?有什么优点?

18.什么是https,说说https的工作原理?

20.什么是虚拟主机及实现原理?

21.什么是Java虚拟机,为什么要使用?

22.说说Java虚拟机的生命周期及体系结构。

23.说一说Java内存区域。

24.什么是分布式系统?

25.分布式系统你会考虑哪些方面?

26.为什么说TCP/IP协议是不可靠的?

27.OSI有哪七层模型?TCP/IP是哪四层模型。

28.TCP协议的三次握手,四次挥手流程。

29.为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?

32.描述一下Java异常层次结构。

33.什么是检查异常,不受检查异常,运行时异常?并分别举例说明。

34.finally块一定会执行吗?

35.正常情况下,当在try块或catch块中遇到return语句时,finally语句块在方法返回之前还是之后被执行?

36.try、catch、finally语句块的执行顺序。

37.Java虚拟机中,数据类型可以分为哪几类?

38.怎么理解栈、堆?堆中存什么?栈中存什么?

39.为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?

40.在Java中,什么是是栈的起始点,同是也是程序的起始点?

43.Java中有没有指针的概念?

44.Java中,栈的大小通过什么参数来设置?

45.一个空Object对象的占多大空间?

46.对象引用类型分为哪几类?

47.讲一讲垃圾回收算法。

48.如何解决内存碎片的问题?

49.如何解决同时存在的对象创建和对象回收问题?

50.讲一讲内存分代及生命周期。

51.什么情况下触发垃圾回收?

52.如何选择合适的垃圾收集算法?

53.JVM有哪三种垃圾回收器?

54.JVM中最大堆大小有没有限制?

55.如何进行JVM调优?有哪些方法?

56.堆大小通过什么参数设置?

60.如何解决业务层的数据访问问题?

61.为了解决数据库服务器的负担,如何做数据库的分布?

62.什么是著名的拜占庭将军问题?

63.讲讲CAP理念。

64.怎么理解强一致性、单调一致性和最终一致性?

65.分布式系统设计你会考虑哪些策略?

百度(24道面试题)

  1. 手写ArrayList
  2. 手写进制转换算法,求出一个数的二进制数1的个数
  3. AVA基础 equals和==
  4. 多线程方式、threadlocal,各种锁,synchronized和lock
  5. 设计模式、spring类加载方式、实例保存在哪、aop ioc、反射机制
  6. 类加载器,双亲委派模型,热部署
  7. jvm内存模型,内存结构、堆的分代算法、堆的分区、gc算法、gc过程。
  8. tcp ip 七层模型 rest接口规范 get和post区别,长度,安全。
  9. tcp ip的arp协议,两个同一网络的主机如何获得对方的mac地址。
  10. 负载均衡、高并发、高可用的架构
  11. mysql的引擎区别
  12. redis缓存,redis的集群部署,热备份,主从备份,主从数据库,hash映射找到知道指定节点。
  13. 了解云计算么,了解云容器docker么,容器和虚拟机的区别。
  14. 项目中的数据库备份,主从数据库、集群
  15. 数据库的索引原理,b+树原理,trie树引申,二叉查找树的原理
  16. 海量数据中查找一个单词,分布式计算map reduce ,或者用hsah映射筛选部分结果
  17. java的抽象类和接口区别、java的hashmap,java的内存模型,分区,分代垃圾回收算法。实例、常量放在哪里。
  18. int 4个字节,double 8个字节。
  19. 多线程中的wait和sleep区别,notify的作用
  20. 设计模式了解哪些,写一个观察者模式。实现两个接口,一个是主题一个是观察者,并写出对应方法。
  21. 写一个生产者消费者队列的方法,分别写两个类代表生产者和消费者,并且用队列模拟其生产消费。用while循环和wait notify可以实现,但我忘记在队列上加synchronize关键字,于是让我再写一题。写的是:输入一个字符串,输入第一个只出现一次的字符,写出来了。
  22. tcp ip的四次挥手 子网掩码的作用, 子网掩码(subnet mask)又叫 网络掩码 、 地址掩码 、子网络遮罩,它是一种用来指明一个 IP地址 的哪些位标识的是 主机 所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成 网络地址 和 主机地址 两部分。
  23. 了解linux么,说一下linux的内核锁?没接触过。
  24. 有没有用过sed 使用shell脚本写一个将文本中的字符替换掉的脚本,大概说了一下用grep || 替换。没再问linux的

 

腾讯(50道面试题)

  1. 线程池有什么作用?
  2. 说说几种常见的线程池及使用场景。
  3. 什么是反射机制?
  4. 说说反射机制的作用。
  5. 反射机制会不会有性能问题?
  6. 你怎么理解http协议?
  7. 说说http协议的工作流程。
  8. http有哪些请求提交方式?
  9. http中的200,302,403,404,500,503都代表什么状态?
  10. http get和post有什么区别?
  11. 你怎么理解cookie和session,有哪些不同点?
  12. 什么是web缓存?有什么优点?
  13. 什么是https,说说https的工作原理?
  14. 什么是http代理服务器,有什么用?
  15. 什么是虚拟主机及实现原理?
  16. 什么是Java虚拟机,为什么要使用?
  17. 什么是分布式系统?
  18. 分布式系统你会考虑哪些方面?
  19. 讲一讲TCP协议的三次握手和四次挥手流程。
  20. 为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?
  21. 为什么TCP TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?
  22. 什么是DoS、DDoS、DRDoS攻击?如何防御?
  23. 描述一下Java异常层次结构。
  24. 什么是检查异常,不受检查异常,运行时异常?并分别举例说明。
  25. finally块一定会执行吗?
  26. 正常情况下,当在try块或catch块中遇到return语句时,finally语句块在方法返回之前还是之后被执行?
  27. try、catch、finally语句块的执行顺序。
  28. Java虚拟机中,数据类型可以分为哪几类?
  29. Java中,栈的大小通过什么参数来设置?
  30. 一个空Object对象的占多大空间?
  31. 讲一讲垃圾回收算法。
  32. 如何解决内存碎片的问题?
  33. 如何解决同时存在的对象创建和对象回收问题?
  34. 讲一讲内存分代及生命周期。
  35. 什么情况下触发垃圾回收?
  36. 如何选择合适的垃圾收集算法?
  37. 堆大小通过什么参数设置?
  38. JVM有哪三种垃圾回收器?
  39. 吞吐量优先选择什么垃圾回收器?响应时间优先呢?
  40. 如何进行JVM调优?有哪些方法?
  41. 如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决?
  42. 讲讲CAP理念。
  43. 怎么理解强一致性、单调一致性和最终一致性?
  44. 分布式系统设计你会考虑哪些策略?
  45. 最常见的数据分布方式是什么?
  46. 谈一谈一致性哈希算法。
  47. 如何理解选主算法?
  48. OSI有哪七层模型?TCP/IP是哪四层模型。

 

京东(20道面试题)

  1. Tomcat的基本架构是什么?
  2. jvm调优,工作的是怎么用的,垃圾回收的策略有哪些?
  3. Java 中的线程池是如何实现的?创建线程池的几个核心构造参数?
  4. 对比下 volatile 对比 Synchronized 的异同。
  5. GC机制是什么?
  6. 垃圾回收器的基本原理是什么?垃圾回收器可以立马回收内存吗?怎样主动通知虚拟机进行垃圾回收?
  7. 类加载器双亲委派模型机制?
  8. 集合的种类以及区别,HashMap底层如何实现?HashMap中Hash冲突是怎么解决的?
  9. Spring IOC 怎么管理 Bean 之间的依赖关系,怎么避免循环依赖?
  10. Spring Bean 创建过程中的设计模式?
  11. InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
  12. 简述事务的特性?
  13. 什么是MySQL隔离级别?
  14. 如何理解BTree机制?
  15. 谈谈对慢查询分析?MySQL常用优化方式有哪些??
  16. 谈谈悲观锁和乐观锁及用SQL实现?
  17. 简述三次握手及四次挥手的过程?
  18. 对比B+树索引和 Hash索引?
  19. MySQL的锁并发?
  20. 高并发场景(领红包)如何防止死锁,保证数据一致性?
  21. 集群与负载均衡的算法与实现?
  22. 简述分库与分表设计?
  23. 分库与分表带来的分布式困境与应对之策?
  24. 加锁机制是什么?

 

美团(30道面试题)

  1. java虚拟机内存模型
  2. 内存溢出一般发生在哪个区?永久代会不会导致内存溢出?
  3. 动态加载类的框架了解哪些?
  4. 动态代理一般有哪几种实现方式?动态代理的应用场景有哪些?
  5. 栈会不会溢出?栈溢出一般抛什么异常?jvm在哪里设置栈的大小?设置的参数是什么?
  6. jvm的垃圾回收机制?
  7. java类加载机制?如何实现自定义类加载器?findClass与loadClass的区别?
  8. String、StringBuffer、StringBuilder的区别?对应的使用场景?
  9. 如何实现不可变的类?
  10. 浅复制和深复制?怎样实现深复制?
  11. HashMap、HashTable、ConcurrentHashMap的区别?
  12. CAS是一种什么样的同步机制?
  13. spring加载bean的流程?
  14. java线程池?线程池构造函数的几个参数含义?keepAliveTime解释一下?
  15. 一个接口,要去调用另外5个接口,每一个接口都会返回数据给这个调用接口,调用接口要对数据进行合并并返回给上层。这样一种场景可能用到并发包下的哪些类?你会怎么去实现这样的业务场景?
  16. CountDownLatch和CyclicBarrier的区别?
  17. 线程加锁有哪些方式?synchronized和lock的区别?
  18. volatile关键字的作用?为什么使用AtomicLong而不使用Long?AtomicLong的底层是怎么实现的?
  19. mysql的存储引擎有哪几种?
  20. sql优化有哪些着手点?组合索引的最左前缀原则的含义?
  21. springmvc处理请求的流程?
  22. spring的事务怎么使用?事务回滚?自定义异常?
  23. 脏读?幻读?
  24. tcp四次挥手的过程?TIME_WAIT为什么至少设置两倍的MSL时间?
  25. 了解哪些开源的中间件?缓存?消息?分布式框架?
  26. 用到过哪些设计模式?单例模式的实现?
  27. 数据库的脏读,幻读,不可重复读出现的原因原理,解决办法
  28. 数据库的隔离级别、MVCC
  29. 乐观锁、悲观锁、互斥锁、读写锁的原理实现与区别
  30. 一致性hash算法原理与应用
  31. CAP原则
  32. CAS操作


2020最新BAT必考题和答案、2020最新BAT必考题和答案全面覆盖:内容包括:redis、高并发、多线程、分布式、MySQL、数据库、线程、锁、dubbo、jvm、Java虚拟机、spring、memcached等。

笔者整理的面试答案获取方式:一键三连(点赞+收藏+关注) 后,添加微信:mxm9843 即可免费获取到

Java面经大全

 

Java高级面试大全