前言2021年已经过去了半年,金九银十也在悄然临近,时间一眨眼就过去了。2021年我也想加薪,那么问题来了,怎样才能达到目的呢,小编就为大家盘点几道高频面试题吧!!!一、Java基础1、Java有哪些数据类型?2、final有什么用?3.引入静电。4、“==”和equals方法有什么区别?5.java中有引用传递吗?6.Strings="你好";s=s+"世界!";这两行代码执行后,原来的String对象中的内容是不是发生了变化?7.错误和异常有什么区别?8、java程序的初始化顺序是怎样的?9、java中IO流有几种类型?有什么不同?10、String为什么要用final修饰?11、BIO、NIO、AIO有什么区别?12.如何自定义注解?13.什么是hashCode()?二、Java进阶1、什么是多态?java实现多态的机制是什么?2、重载和重写有什么区别?3、为什么java重载与返回值无关?4.抽象类和普通类的区别5.抽象类和接口的区别6.什么是反射?反射是如何实现的?反射的应用。7.创建一个对象有多少种方法?8、如何提高反射效率?9.什么是类加载器?10.类加载有几种方式,它们有什么区别?11.WhatistheprinciplemechanismofJVMloadingclassfiles(什么是JVM类加载的原理机制)?12.什么是集合?集合和数组的区别。13.常用的集合类有哪些?有什么不同?14.集合如何安全地批量删除元素?15、java是如何实现动态代理的?有什么意义?16.什么是死锁?死锁的原因是什么?如何避免死锁?17.synchronized的作用。18.volatile关键字的作用19.线程如何保持同步?20.什么是CAS?21.乐观锁和悲观锁?如何实现乐观锁?22.Lock和synchronized的区别。3.什么是MyBatis1.MyBatis?2.什么是ORM?3、为什么Mybatis是一个半自动的ORM映射工具?它和全自动有什么区别?4、传统JDBC开发存在的问题。5、JDBC编程有哪些缺点,MyBatis是如何解决这些问题的?6.Mybatis优缺点。7、MyBatis框架适用场景。8.Hibernate和MyBatis的区别。9、MyBatis的分析及运行原理。10.MyBatis的编程步骤是什么?11、请说说MyBatis的工作原理。12.MyBatis的功能架构是怎样的?13.MyBatis的框架设计是怎样的?14.Mybatis有哪些Executor?它们之间有什么区别?15.Mybatis中如何指定使用哪个Executor?16.Mybatis支持懒加载吗?如果支持,它是如何实现的?17.#{}和${}的区别。18.模糊查询like语句怎么写?19.如何在mapper中传递多个参数?20、Mybatis如何进行批量操作?21.简述Mybatis的Xml映射文件与Mybatis内部数据结构的映射关系?四、春天1、什么是春天?什么是春天?2、Spring的优缺点是什么?为什么要使用弹簧?3.什么是控制反转(IOC)和依赖注入(DI)?什么意思?执行机制是什么?4.什么是DependencyInjection-DI,依赖注入,是IOC的重要实现什么是AOP?什么意思?实现原理是什么?如何使用它?SpringAOP的通知类型和顺序是什么?6.什么是AOP--aspect-orientedprogramming?7、静态代理和动态代理有什么区别?8、如何强制SpringAOP使用CGLIB实现动态代理?9、依赖注入的实现原理和方式是什么?10、@Qualifier注解的作用是什么?11、Spring中对象的作用域是什么?Spring中如何改变对象的作用域?12.Spring中的对象是线程安全的吗?Spring中如何保证对象的线程安全?13、SpringSafety中如何保证对象线程?14.SpringFramework中有多少个模块,它们是什么?五、并发编程基础知识1、线程和进程的区别2、创建线程的四种方式3、as-if-serial规则和happens-before规则的区别...锁系统1、Lock和first简介熟人AQS2。乐观锁的实现,什么是CAS?3.什么是死锁?4、死锁和活锁的区别,死锁和饥饿的区别?五、AQS(AbstractQueuedSynchronizer)详解及源码分析并发容器1.并发容器CopyOnWriteArrayList详解2.并发容器ThreadLocal详解3.并发容器ConcurrentHashMap详解(JDK1.8版本)及源码分析4.并发容器BlockingQueue详解5.ThreadLocal内存泄漏分析及解决方案线程池1.Executors类创建四种常用线程池2.详解线程池中ThreadPoolExecutor6.中间件RabbitMQ1.rabbitmq有哪些使用场景?2、rabbitmq有哪些重要作用?3、rabbitmq有哪些重要组成部分?4.ravhost在bbitmq中的作用是什么?5、rabbitmq消息是如何发送的?6、rabbitmq如何保证消息的稳定性?7、rabbitmq如何避免消息丢失?8、保证消息持久化成功的条件有哪些?9、rabbitmq持久化的缺点是什么?10、rabbitmq是如何实现延迟消息队列的?11、rabbitmq对集群节点的停止顺序有要求吗?Kafka1.kafka可以独立于zookeeper使用吗?为什么?2、Kafka有多少种数据保留策略?3、kafka设置了7天10G同时清空数据。到了第五天,消息达到了10G。这个时候Kafka会怎么处理呢?4.什么会导致kafka运行慢?5、使用Kafka集群需要注意什么?什么是Zookeeper1。动物园管理员?2、zookeeper有哪些功能?3、zookeeper有几种部署方式?4、zookeeper如何保证主从节点的状态同步?5、为什么集群中会有master节点?6、集群中有3台服务器,其中一个节点宕机了。这个时候还能用zookeeper吗?7、说说zookeeper的通知机制?7、数据库MySql1。说说数据库的事务隔离?2、说说mysql常用的引擎有哪些?3、说说mysql的行锁和表锁?4、说说乐观锁和悲观锁?5、排查mysql问题的方法有哪些?6、如何优化mysql的性能?7、如何验证mysql索引是否满足要求?8、数据库的三大范式是什么?9.告诉我什么是酸?10.如何获取当前数据库版本?Redis1.redis是什么?有哪些使用场景?2、redis和memecache有什么区别?3、为什么redis是单线程的?4、edis和redisson有什么区别?5、如何保证缓存和数据库数据的一致性?6、redis持久化有几种方式?7、redis是如何实现分布式锁的?8、redis分布式锁有哪些缺陷?9、redis是如何做内存优化的?10、redis淘汰策略有哪些?JVM1。说说jvm运行时数据区?2.说说栈的区别?3.什么是队列和栈?有什么不同?4.什么是双亲委派模式?5.说说类加载的执行过程?6.如何判断对象是否是可以回收吗?7.java中的引用类型有哪些?8、说说jvm有哪些垃圾回收算法?9.告诉我jvm有哪些垃圾收集器?10.详细解释CMS垃圾收集器?总结面试题包括以下十九个模块:Java基础、容器、多线程、反射、对象复制、JavaWeb模块、异常、网络、设计模式、Spring/SpringMVC、SpringBoot/SpringCloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM如下图所示:最后,考虑到篇幅,选取了一些常见且重要的面试题进行展示。所有的面试问题都不是一成不变的。以上面试题仅供大家参考。最重要的是给自己增加知识储备,做好准备。资料获取方式:点赞+转发后,点击【点此】获取!
