前言

本文地址:http://www.ib911.com/14994509/2590399
文章摘要:太阳城游戏导航,之前与安德明之间那一场战斗爱你爱你爱你"澳门九五至尊线上游戏官网"可以休息哼哼。

本文档是从阿里面试官整理的Java面试题;包含了Java基础、Java集合容器、Java异常、并发编程、JVM、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、Redis、MySQL数据库、消息中间件MQ与RabbitMQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty、 架构设计&分布式&数据结构与算法等等,都是互联网大厂的面试真题,已经有粉丝靠这份PDF拿下众多大厂的offer。

每一份面试文档的左侧都有文档大纲,这也是为了方便大家阅读,特别整理的;文章限于篇幅,故这里只是部分的截图展示。 有需要答案解析的朋友可以关注公众号:麒麟改bug

小编这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录

  1. JavaOOP面试题——108道
  2. Java集合/泛型面试题——24道
  3. Java异常面试题——8道
  4. Java中的IO与NIO面试题——15道
  5. Java反射面试题——10道
  6. Java序列化面试题——10道
  7. Java注解面试题——2道
  8. 多线程&并发面试题——108道
  9. JVM面试题——87道
  10. Mysql面试题——83道
  11. Redis面试题——50道
  12. Memcached面试题——24道
  13. MongoDB面试题——95道
  14. String面试题——131道
  15. Spring Cloud面试题——35道
  16. RabbitMQ面试题——32道
  17. Dubbo 面试题——40道
  18. MyBatis 面试题——28道
  19. ZooKeeper 面试题——49道
  20. 数据结构面试题——9道
  21. 算法面试题——21道
  22. Elasticsearch 面试题——24道
  23. Kafka 面试题——25道
  24. 微服务 面试题——50道
  25. Linux面试题——48道

干货分享来了!!!

太阳城游戏导航:一、JavaOOP面试题

1、什么是B/S架构?什么是C/S架构

2、Java都有那些开发平台?

3、什么是JDK?什么是JRE?

4、Java语言有哪些特点

5、面向对象和面向过程的区别

6、什么是数据结构?

7、Java的数据结构有那些?

8、什么是OOP?

9、类与对象的关系?

10、Java中有几种数据类型

11、标识符的命名规则。

12、instanceof关键字的作用

13、什么是隐式转换,什么是显式转换

14、Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型

15、什么是拆装箱?

16、Java中的包装类都是那些?

17、一个java类中包含那些内容?

18、那针对浮点型数据运算出现的误差的问题,你怎么解决?

19、面向对象的特征有哪些方面?

20、访问修饰符 public,private,protected,以及不写(默认) 时的区别?

【文章篇幅有限,暂时展示一部分,需要答案解析关注公众号:麒麟改bug。】

二、Java集合/泛型面试题

1、ArrayList和linkedList的区别

2、 HashMap和HashTable的区别

3、Collection包结构,与Collections的区别

4、泛型常用特点 (待补充)

5、说说List,Set,Map三者的区别

6、Array与ArrayList有什么不一样?

7、Map有什么特点

8、集合类存放于 Java.util 包中, 主要有几 种接口

9、什么是list接口

10、说说ArrayList(数组)

11、Vector( 数组实现、 线程同步)

12、说说LinkList(链表)

13、什么Set集合

14、HashSet( Hash 表)

15、什么是TreeSet(二叉树)

16、说说LinkHashSet( HashSet+LinkedHashMap)

17、HashMap(数组+链表+红黑树)

18、说说ConcurrentHashMap

19、HashTable(线程安全)

20、TreeMap(可排序)

三、Java异常面试题

1、Java中异常分为哪两种?

编译时异常

运行时异常

2、异常的处理机制有几种?

异常捕捉:try…catch…finally,异常抛出:throws。 public class Box<T> { private T t; public void add(T t) { this.t = t; }public T get() { return t; } }

3、如何自定义一个异常

继承一个异常类,通常是RumtimeException或者Exception

4、try catch fifinally,try里有return,finally还执行么?

执行,并且finally的执行早于try里面的return

结论:

1、不管有木有出现异常,finally块中代码都会执行;

2、当try和catch中有return时,finally仍然会执行;

3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;

4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

5、 Excption与Error包结构

6、Thow与thorws区别

7、Error与Exception区别?

8、error和exception有什么区别

四、Java中的IO与NIO面试题

1、Java 中 IO 流?

2、 Java IO与 NIO的区别

3、常用io类有那些

4、字节流与字符流的区别

5、阻塞 IO 模型

6、非阻塞 IO 模型

7、多路复用 IO 模型

8、信号驱动 IO 模型

9、异步 IO 模型

10、JAVA NIO

11、NIO 的缓冲区

12、NIO 的非阻塞

13、Channel

14、Buffer

15、Selector

五、Java反射面试题

1、除了使用new创建对象之外,还可以用什么方法创建对象?

2、Java反射创建对象效率高还是通过new创建对象的效率高?

3、java反射的作用

4、哪里会用到反射机制?

5、反射的实现方式:

6、实现Java反射的类:

7、反射机制的优缺点:

8、Java 反射 API

9、反射使用步骤(获取 Class 对象、调用对象方法)

10、获取 Class 对象有几种方法

六、Java序列化面试题

1、什么是java序列化,如何实现java序列化?

2、保存(持久化)对象及其状态到内存或者磁盘

3、序列化对象以字节数组保持-静态成员不保存

4、序列化用户远程对象传输

5、Serializable 实现序列化

6、writeObject 和 readObject 自定义序列化策略

7、序列化 ID

8、序列化并不保存静态变量

9、Transient 关键字阻止该变量被序列化到文件中

10、序列化(深 clone 一中实现)

七、Java注解面试题

1、4种标准元注解是哪四种?

2、注解是什么?

八、多线程&并发面试题

JAVA 并发知识库

1、Java中实现多线程有几种方法

2、继承 Thread 类

3、实现 Runnable 接口。

4、ExecutorService、 Callable、 Future 有返回值线程

5、基于线程池的方式

6、4 种线程池

7、如何停止一个正在运行的线程

8、notify()和notifyAll()有什么区别?

9、sleep()和wait() 有什么区别?

10、volatile 是什么?可以保证有序性吗?

11、Thread 类中的start() 和 run() 方法有什么区别?

12、为什么wait, notify 和 notifyAll这些方法不在thread类里面?

13、为什么wait和notify方法要在同步块中调用?

14、Java中interrupted 和 isInterruptedd方法的区别?

15、Java中synchronized 和 ReentrantLock 有什么不同?

16、有三个线程T1,T2,T3,如何保证顺序执行?

17、SynchronizedMap和ConcurrentHashMap有什么区别?

18、什么是线程安全

19、Thread类中的yield方法有什么作用?

20、Java线程池中submit() 和 execute()方法有什么区别?

21、说一说自己对于 synchronized 关键字的了解

22、说说自己是怎么使用 synchronized 关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式

23、什么是线程安全?Vector是一个线程安全类吗?

【文章篇幅有限,暂时展示一部分,需要答案解析关注公众号:麒麟改bug。】

九、JVM面试题

1、java中会存在内存泄漏吗,请简单描述。

2、64 位 JVM 中,int 的长度是多数?

3、Serial 与 Parallel GC 之间的不同之处?

4、32 位和 64 位的 JVM,int 类型变量的长度是多数?

5、Java 中 WeakReference 与 SoftReference 的区别?

6、JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用

7、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?

8、32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?

9、JRE、JDK、JVM 及 JIT 之间有什么不同?

10、解释 Java 堆空间及 GC?

11、JVM 内存区域

12、程序计数器(线程私有)

13、虚拟机栈(线程私有)

14、本地方法区(线程私有)

15、你能保证 GC 执行吗?

16、怎么获取 Java 程序使用的内存?堆使用的百分比?

17、Java 中堆和栈有什么区别?

18、描述一下 JVM 加载 class 文件的原理机制

19、GC 是什么?为什么要有 GC?

20、堆(Heap-线程共享) -运行时数据区

十、Mysql面试题

1、数据库存储引擎

2、TokuDB( Fractal Tree-节点带数据)

3、MyIASM

4、Memory

5、数据库引擎有哪些

6、InnoDB与MyISAM的区别

7、索引

8、常见索引原则有

9、数据库的三范式是什么

10、第一范式(1st NF - 列都是不可再分)

11、第二范式(2nd NF- 每个表只描述一件事情)

12、第三范式(3rd NF- 不存在对非主键列的传递依赖)

13、数据库是事务

14、SQL优化

15、简单说一说drop、delete与truncate的区别

16、什么是视图

17、什么是内联接、左外联接、右外联接?

18、并发事务带来哪些问题?

19、事务隔离级别有哪些?MySQL的默认隔离级别是?

20、大表如何优化?

十一、Redis面试题

1、什么是 Redis?

2、Redis 与其他 key-value 存储有什么不同?

3、Redis 的数据类型?

4、使用 Redis 有哪些好处?

5、Redis 相比 Memcached 有哪些优势?

6、Memcache 与 Redis 的区别都有哪些?

7、Redis 是单进程单线程的?

8、一个字符串类型的值能存储最大容量是多少?

9、Redis持久化机制

10、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

11、热点数据和冷数据是什么

12、单线程的redis为什么这么快

13、redis的数据类型,以及每种数据类型的使用场景

14、redis的过期策略以及内存淘汰机制

15、Redis 常见性能问题和解决方案?

16、为什么Redis的操作是原子性的,怎么保证原子性的?

17、Redis事务

18、Redis 的持久化机制是什么?各自的优缺点?

19、Redis 常见性能问题和解决方案:

20、redis 过期键的删除策略?

21、Redis 的回收策略(淘汰策略)?

22、为什么 edis 需要把所有数据放到内存中?

23、Redis 的同步机制了解么?

24、Pipeline 有什么好处,为什么要用 pipeline?

25、是否使用过 Redis 集群,集群的原理是什么?

26、Redis 集群方案什么情况下会导致整个集群不可用?

27、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

28、Jedis 与 Redisson 对比有什么优缺点?

29、Redis 如何设置密码及验证密码?

30、说说 Redis 哈希槽的概念?

31、Redis 集群的主从复制模型是怎样的?

32、Redis 集群会有写操作丢失吗?为什么?

33、Redis 集群之间是如何复制的?

34、Redis 集群最大节点个数是多少?

35、Redis 集群如何选择数据库?

36、怎么测试 Redis 的连通性?

【文章篇幅有限,暂时展示一部分,需要答案解析关注公众号:麒麟改bug。】

十二、Memcached面试题

1、Memcached 是什么,有什么作用?

2、memcached 服务在企业集群架构中有哪些应用场景?

3、Memcached 服务特点及工作原理是什么?

4、简述 Memcached 内存管理机制原理?

5、memcached 是怎么工作的?

6、memcached 最大的优势是什么?

7、memcached 和 MySQL 的 query

8、memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优缺点?

9、memcached 的 cache 机制是怎样的?

10、memcached 如何实现冗余机制?

十三、MongoDB面试题

1、mongodb是什么?

2、mongodb有哪些特点?

3、你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?

4、NoSQL数据库有哪些类型?

5、MySQL与MongoDB之间最基本的差别是什么?

6、你怎么比较MongoDB、CouchDB及CouchBase?

7、MongoDB成为最好NoSQL数据库的原因是什么?

8、journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?

9、分析器在MongoDB中的作用是什么?

10、名字空间(namespace)是什么?

11、 如果用户移除对象的属性,该属性是否从存储层中删除?

12、能否使用日志特征进行安全备份?

13、允许空值null吗?

14、更新操作立刻fsync到磁盘?

15、如何执行事务/加锁?

16、为什么我的数据文件如此庞大?

十四、String面试题

Spring Boot面试题

1、不同版本的 Spring Framework 有哪些主要功能?

2、什么是 Spring Framework?

3、列举 Spring Framework 的优点。

4、Spring Framework 有哪些不同的功能?

5、Spring Framework 中有多少个模块,它们分别是什么?

6、什么是 Spring 配置文件?

7、Spring 应用程序有哪些不同组件?

8、使用 Spring 有哪些方式?

9、什么是 Spring IOC 容器?

10、什么是依赖注入?

11、可以通过多少种方式完成依赖注入?

12、区分构造函数注入和 setter 注入

13、spring 中有多少种 IOC 容器?

14、区分 BeanFactory 和 ApplicationContext。

15、列举 IoC 的一些好处。

16、Spring IoC 的实现机制。

17、什么是 spring bean?

18、spring 提供了哪些配置方式?

19、spring 支持集中 bean scope?

20、spring bean 容器的生命周期是什么样的?

21、什么是 spring 的内部 bean?

22、什么是 spring 装配

23、自动装配有哪些方式?

24、自动装配有什么局限?

25、什么是基于注解的容器配置

26、如何在 spring 中启动注解装配?

27、@Component, @Controller, @Repository

28、@Required 注解有什么用?

29、@Autowired 注解有什么用?

30、@Qualifier 注解有什么用?

31、@RequestMapping 注解有什么用?

32、spring DAO 有什么用?

33、列举 Spring DAO 抛出的异常。

34、spring JDBC API 中存在哪些类?

【文章篇幅有限,暂时展示一部分,需要答案解析关注公众号:麒麟改bug。】

十五、Spring Cloud面试题

1、什么是 Spring Cloud?

2、使用 Spring Cloud 有什么优势?

3、服务注册和发现是什么意思?Spring Cloud 如何实现?

4、负载平衡的意义什么?

5、什么是 Hystrix?它如何实现容错?

6、什么是 Hystrix 断路器?我们需要它吗?

7、什么是 Netflix Feign?它的优点是什么?

8、什么是 Spring Cloud Bus?我们需要它吗?

9、什么是微服务

10、什么是服务熔断?什么是服务降级

11、Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?

12、SpringBoot和SpringCloud的区别?

13、什么是Hystrix断路器?我们需要它吗

14、说说 RPC 的实现原理

15、微服务的优点缺点?说下开发项目中遇到的坑?

16、spring cloud 和dubbo区别?

17、REST 和RPC对比

18、你所知道的微服务技术栈?

19、微服务之间是如何独立通讯的?

20、springcloud如何实现服务的注册?

十六、RabbitMQ面试题

1、什么是 rabbitmq

2、为什么要使用 rabbitmq

3、使用 rabbitmq 的场景

4、如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?

5、如何避免消息重复投递或重复消费?

6、消息基于什么传输?

7、消息如何分发?

8、消息怎么路由?

9、如何确保消息不丢失?

10、使用 RabbitMQ 有什么好处?

11、RabbitMQ 的集群

12、mq 的缺点

13、Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别?

14、如何保证高可用的?

15、如何保证消息的可靠传输?如果消息丢了怎么办

16、如何保证消息的顺序性

17、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决

18、设计MQ的思路

19、什么是Message?

20、什么是Publisher ?

【文章篇幅有限,暂时展示一部分,需要答案解析关注公众号:麒麟改bug。】

十七、Dubbo 面试题

1、为什么要用 Dubbo?

2、Dubbo 的整体架构设计有哪些分层?

3、默认使用的是什么通信框架,还有别的选择吗?

4、服务调用是阻塞的吗?

5、一般使用什么注册中心?还有别的选择吗?

6、默认使用什么序列化框架,你知道的还有哪些?

7、服务提供者能实现失效踢出是什么原理?

8、服务上线怎么不影响旧版本?

9、如何解决服务调用链过长的问题?

10、说说核心的配置有哪些?

11、Dubbo 推荐用什么协议?

12、同一个服务多个注册的情况下可以直连某一个服务吗?

13、画一画服务注册与发现的流程图?

最后

篇幅有限,其他内容就不在这里一一展示了,对标阿里P7的Java后端开发面试总结一共25个专题,整理不易,需要的小伙伴可以关注公众号领取。欢迎大家一起交流,喜欢文章记得关注我点赞哟,感谢支持!