一、基础
    1、Java都有哪些数据类型?基本数据类型有哪些?分别占多少字节?多少位?引用数据类型又有哪些?
        基本数据类型:byte(1)、short(2)、int(4)、long(8)、float(4)、double(8)、char(2)、boolean(1)
        引用数据类型:数组、接口、对象
    2、Java语言的几大特性是什么?分别怎么理解?(封装、继承、多态的好处)    
    3、Java的权限修饰符有哪些?都能加在哪些地方?分别代表什么意义?
    4、什么是重写?什么是重载?
    5、final关键字能加在哪些地方?分别代表什么?
    6、static关键字能加在哪些地方?分别代表什么?
    7、接口中可以有哪些成员?抽象类呢?接口和抽象类又有什么区别?(注意JDK1.8接口中是可以出现非抽象方法的:default方法、静态方法)
    8、Java异常体系是什么?(编译)异常有什么区别?常见的运行时异常有哪些?
    9、== 和 equals的异同?
    10、&与&&、|与||的区别?
    11、String可以修改本身吗?为什么?
    12、StringBuffer和StringBuilder的区别是什么?
    13、valueOf和toString的区别?
    14、大量字符串用 "+" 号进行拼接效率高吗?为什么?应该用什么替代?为什么?
    15、创建一个类的实例都有哪些办法?
    16、Java集合的体系是什么样的?
    17、Set和List分别有哪些特点?Set去重的原理?
    18、ArrayList底层原理是什么?扩容原理?
    19、LinkedList底层原理是什么?和ArrayList的区别是什么?
    20、HashMap的底层原理是什么?map添加数据put的过程?扩容原理?
    21、concurrentHashMap原理是什么?
    22、JDK8对于HashMap做了哪些优化?
    23、什么是socket?什么是IO/NIO/BIO/AIO?区别是什么?
    24、什么是反射?可以用来干嘛?列举一下反射应用场景?什么是暴力反射?
    25、算法了解过吗?冒泡排序、选择排序、快排原理?
    26、JDK1.8的新特性有哪些?(lamda表达式、stream流、函数式接口、接口中默认方法、方法引用等等)
    27、IO流体系
    28、如何实现分布式主键自增?
    29、http底层,和https的区别?
    30、Java是引用传递还是值传递?为什么?

二、JVM
    1、JDK和JRE的区别是什么?
    2、JVM的内存模型描述下?
    3、JVM双亲委派加载机制,为什么JVM这么做?有违反双亲委派的例子吗?
    4、类的加载流程是什么样的,每个阶段解释一下
    5、JVM的GC的主要区域以及各自的GC机制是什么样的?
    6、JVM的GC算法都有哪些?
    
三、Spring & SpringBoot
    1、说下对SpringIOC的理解,怎么理解控制反转? 
    2、Spring如何解决IOC中的循环依赖问题?
    3、说下对SpringAOP的理解、有哪些通知?使用场景有哪些?(底层原理:两种动态代理)
    4、说下SpringMvc的流程(从访问一个URL到得到页面结果的具体流程:DispatcherServlet的职责流程)
    5、对Spring声明式事务的理解?Spring的事务隔离级别?Spring事务传播行为?
        声明式事务:通过打注解的方式去声明一下即可:@Transactional
        编程式事务:开启事务、提交、回滚都是需要自己编写代码的
    6、什么情况下会让spring事务失效
    7、Spring有哪些核心注解?分别的作用?
    8、Spring和SpringBoot的关系?
    9、SpringBoot的自动装配原理是什么?
    10、SpringBoot的核心注解是哪个?详细说下
    11、SpringBoot项目的启动加载流程大概说下
    12、SpringBoot项目读取配置文件的方式有几种?
    13、如何自定义SpringBoot starter?
    14、BeanFactory和FactoryBean的区别?
    15、Spring Bean的生命周期是什么?
    
四、Mysql & Mybatis?
    1、什么是索引?
    2、Mysql的数据结构是什么(mysql索引的数据结构)?为什么用这种结构?(如何提高磁盘IO效率)
    3、Mysql的数据IO查找流程是什么样的?
    4、B+tree和Btree由什么组成?他们的异同?
    5、Mysql两种存储引擎(InnoDB和Mysiam)的区别?这两种引擎B+tree的叶子结点和非叶子结点分别存储的什么?
    6、Mysql索引有哪些类型?什么场景使用哪种索引?
    7、如何进行Mysql优化?(sql优化层面和服务器优化层面)
    8、Sql调优你会从何入手(措施)?
    9、Mysql中如何合理使用索引?有哪些会使索引失效的情况?
    10、Mysql如何排查慢查询(哪个关键字)?分别会列出来哪些信息项?
    11、事务的特性是什么?Mysql事务隔离级别有哪几种?分别会产生什么问题?Mysql默认隔离级别是什么?Oracle呢?
    12、Mysql的行锁、表锁,悲观锁、乐观锁?
    13、Mysql的vachar和char的区别?
    14、什么是内连接(inner join)、外连接(left join)?
    15、平时Mysql的sql练习要练到位!!
    16、Mybatis底层的原理?一级缓存和二级缓存是什么?
    17、mybatis #{}和${}的区别?
    18、Mysql存储过程、存储函数、触发器、视图(View)分别用来干嘛的?创建语法是什么?
    19、union和unionAll有什么区别?
    20、创建表、删除表、更新表字段语句?
    21、mysql左外连接语句的写法?
    22、听过InnoDB的Mvcc技术吗?说下是什么?
    23、Java实现动态代理有哪些方式?区别是什么?
    
    
五、多线程
    1、创建线程的方式有哪些?相比继承Thread类,实现Runable接口的好处是什么?
    2、线程的状态有哪些?
    3、run()和start()方法有哪些区别?
    4、实现线程间通讯的方法有哪些?
    5、wait、notify、notifyAll分别的作用是什么?可以用在同步代码块之外吗?为什么?
    6、Sleep和Wait的区别?
    7、什么是线程安全问题?什么情况下会产生?如何解决?
    8、什么是死锁?如何防止产生死锁?
    9、Synchronized关键字的底层原理是什么?
    10、Synchronized可以用在哪些地方?分别的锁对象是什么?
    11、Synchronized和JUC下Lock锁的异同?
    13、Synchronized在JDK1.6做了什么优化?
    12、Synchronized是公平锁还是非公平锁?获取不到锁时会阻塞吗?
    13、同步代码块中执行完wait/notify/notifyAll后会立马释放锁吗?
    14、Lock锁有哪些实现?分别的特点是什么?
    15、JUC下Lock的监视器对象是哪个类?与Synchronized的监视器有什么异同?
    16、什么是线程可重入?Synchronized具备吗?Lock呢?
    17、什么是AQS?
    18、什么是CAS?什么是CAS的ABA问题?如何解决?
    19、你了解JUC下的哪些工具类,分别有什么作用?(CountdownLatch、Cyclicbarrier、Simephore)
    20、说下volatile关键字,有什么作用?原理是什么?
    21、说下ThreadLocal,有什么作用?有哪些主要方法,实现原理是什么?为什么会有内存泄漏问题?如何解决?
    22、说下线程池的几大核心参数?分别有什么作用?有几种默认的线程池?他们的7个核心参数为什么要那么设置?
    23、单例模式写法有哪几种?(懒汉和饿汉式)那么懒汉式中保证线程安全的写法是什么?为什么要用双重检查模式?
        
    
六、Redis & 多级缓存
    1、Redis是一个什么样的数据库?读写速度怎么样?
    2、Redis有哪些数据类型,分别的特点?在你们项目中常见的应用场景有哪些?请列举
    3、Redis的持久化机制是什么样的?
        1)、什么是RDB?RDB的持久化机制(Save、bgSave)?
        2)、触发RDB的时间点是什么?
        3)、RDB的优缺点分别有哪些?
        4)、什么是AOF?分为几个阶段?
        5)、AOF命令同步至日志文件分为哪几种?
        6)、AOF文件重写时间点?重写做了什么?
        7)、AOF的优缺点分别有哪些?
        8)、AOF和RDB同时开启会优先使用哪种进行数据恢复?
        9)、RDB-AOF混合模式是什么?优点有哪些?
    4、Redis主从结构能解决什么问题?
    5、Redis主从同步具体流程是什么?   
        1)、建立连接
        2)、数据同步(全量同步、增量同步)【runid运行ID、offset偏移量、复制积压缓冲区】
            1、全量同步具体场景有哪些?流程?如何避免全量同步次数(全量同步非常耗时)
            2、增量同步具体场景有哪些?流程?
        3)、命令传播
    6、如何优化主从同步效率?
        1)、从尽量避免全量同步的方面入手(安全重启使runid不发生变化、调大复制积压缓冲区)
        2)、避免slave从结点太多造成复制风暴(使用树状拓补结构)
    7、Redis的故障恢复依靠什么机制?哨兵机制的主要工作范围、工作流程和作用?
    8、什么是缓存雪崩?缓存击穿?缓存穿透?分别如何解决?什么是缓存预热?
    9、Redis是单线程的,为什么读写效率还那么高?
    10、Redis的线程模型是什么样的?(典型的NIO,非阻塞式IO)
    11、Redis过期数据的删除策略是什么?有哪些?
    12、Redis的数据淘汰策略是什么?有哪些?
    13、Redis的慢查询如何排查?
    14、如何正确使用Redis的分布式事务锁?(Zookeeper也可以实现分布式锁)
    15、Redis的双写一致性如何保证?
    16、项目搭建多级缓存的好处是什么?实现多级缓存的流程是什么?(加分项)
    17、Redis的hash槽一共有多少个?数据是如何进行入槽的?如果实现动态扩容?
                                        消费者    
    生产者 -> 【exchange -> queue】  -> 消费者(开启多个线程)
                                        消费者
    
七、Rabbitmq
    1、Rabbitmq消息模式有哪些?你们用的哪种?(5种)
    2、Rabbitmq如何保证mq消息可靠性?(3大方面)
        1、如何保证生产者不丢
        2、如何保证消息到达MQ了之后不丢
        3、如何保证消费者不丢
    3、Rabbitmq如何实现延时消息?(2种)
    4、什么是死信队列?什么样的消息会进入死信队列?
    5、Rabbitmq如何解决消息堆积问题?(3种思路)
    6、如何保证消息的幂等性?(从业务层面进行判断)        
    7、如何保证消息顺序消费
        1)、让同一组消息有序的存入同一个队列  
        2)、同一个队列只能有一个消费者进行消费
        3)、引出的问题:如何保证消息消费的速度
            1)、可以起多个队列去存放这一类消息
            2)、消费者中消费消息的代码可以开启多个线程,一个线程消费一个List
    
八、微服务
    1、概念问题
        1)、什么是微服务?解决微服务各种问题都用了哪些组件?
        2)、什么是单体架构、什么是分布式架构、什么是微服务架构?
        3)、微服务有哪些特点?

2、远程调用
        1)、什么是Feign,用来做什么的?Feign底层调用是怎么实现的?底层协议是什么?优势是什么?
        2)、服务间调用,其中一个服务宕机了,这个时候怎么做呢?
        3)、Ribbon是什么?负载均衡策略有哪些?底层原理是什么?默认是哪种?
        4)、Ribbon是如何实现轮询的?如果让你自己实现轮询,如何实现?    
        5)、Feign和Ribbon的关系是什么?
        6)、你们项目中如何使用Feign的(Feign的最佳实践)
        7)、Feign远程调用时的日志级别有哪些?
        8)、如何优化Feign的调用性能?
        7)、Feign的默认超时时间是多久?重试次数是几次?
        8)、Dubbo服务注册与发现的原理?(官方原理图)
        9)、Dubbo负载均衡策略有哪些?默认是哪种?
        10)、Dubbo支持哪些通信协议?默认是哪种?一般用哪种协议?有什么好处?
        11)、注册中心挂了影响服务调用吗?为什么?
        12)、Dubbo启动检查如何设置?多版本支持如何设置?
        13)、Dubbo的默认超时时间是多久?重试次数是几次?
        14)、Dubbo进行服务注册和发现的核心注解是哪个?
        15)、Dubbo服务如何进行监控和管理?
        
    2、注册中心
        1)、Eureka
            1、eureka是属于什么体系的技术(Spring Cloud)
            2、eureka技术体系有哪些角色?(服务端用作注册中心,客户端用作微服务)
            3、eureka的自我保护机制是什么?什么时候开启?为什么开启?开启了会发生什么?
            4、eureka作为注册中心的原理是什么?心跳检测某个服务是否健康的原理详细说下?
            5、eureka集群是属于AP还是CP?(AP)
            
        2)、Nacos
            1、nacos是属于什么体系的技术(Spring Cloud Alibaba)
            2、nacos作为注册中心的原理是什么?
            3、nacos如何确定唯一的一个服务?(通过namespace、group、service、集群唯一确定一个服务)
            4、nacos中namespace、group分别的作用是什么?
            5、nacos和eureka的异同有哪些?
            6、nacos的临时节点和非临时节点有什么区别?
            7、nacos集群是属于AP还是CP?(AP或CP)
            
        3)、Zookeeper
            1、Zookeeper的内部结构是什么?
            2、使用Zookeeper作为分布式事务锁的原理是什么?
            3、Zookeeper集群属于AP还是CP?(CP)

public void beginInsert(){
        synchronized(this){
            (MyService)(AOPContext.curenttProxy()).insert();
        }
    }
    
    @Transation    
    public void insert(){
        User user = query("张三");
        if(user == null){
            insert(user);
        }
    }
    
    3、配置中心
        1)、实现配置中心都可以使用哪些技术?
        2)、使用nacos作为配置中心,如何实现热更新?
        3)、nacos作为配置中心,为什么需要用到bootstrap文件?
        4)、远程配置文件和本地配置文件属性加载优先级是什么样的?
        5)、使用配置中心的好处是什么?能解决什么问题?
    
    4、服务保护
        1)、Hystrix
            1、hystrix是属于什么体系的技术?(SpringCloud)
            2、hystrix可以用来干嘛?(服务熔断降级)
            3、hystrix默认的触发熔断策略是什么?(5分钟之内服务调用异常比例达到一半或者失败次数超过20次)
            4、hystrix的隔离是基于什么?(线程池隔离【低扇出】)
        2)、Sentinel
            1、sentinel可以用来干嘛?(限流、隔离、熔断、降级)
            2、什么是微服务雪崩现象?如何解决微服务雪崩问题?
            3、sentinel的限流模式有哪些?分别的运用场景是什么?
            4、sentinel的限流效果有哪些?分别的运用场景是什么?
            5、sentinel支持对热点参数进行限流吗?
            6、实现微服务调用隔离有两种方式(信号量隔离和线程池隔离),区别是什么?sentinel是使用的哪种?
            7、什么是熔断?熔断的原理是什么?什么时候会触发sentinel的熔断?断路器的三种状态是哪些?是怎样进行切换的?
            8、什么是降级?如何实现降级?
            9、sentinel授权规则是用来干什么的?
            10、sentinel的规则持久化方式有哪些?一般使用哪种?
            
    
    5、网关
        1)、网关有什么作用?在你们项目中用网关来干嘛了?
        2)、网关的核心技术点有哪些?
        3)、网关的路由是用来干嘛的?分为哪几种?
        4)、网关的过滤器是用来干嘛的?分为哪几种?
        5)、网关局部过滤器和全局过滤器的区别有哪些?
        6)、网关中局部过滤器、默认过滤器、全局过滤器的执行顺序是什么?
        7)、加入网关后,访问一个链接,你们项目的执行流程是什么?
        8)、定义全局过滤器需要实现哪几个接口?

6、分布式事务
        1)、什么是本地事务?什么是分布式事务?
        2)、什么是CAP定理?为什么必须保证P?为什么在保证P的前提下只能保证C或者A其中一个?
        3)、什么是BASE理论?
        4)、seata解决分布式事务的三个角色以及分别的作用什么?
        5)、seata解决分布式事务的四种模式
        6)、XA模式特点、原理以及应用场景?优缺点有哪些?
        7)、AT模式特点、原理以及应用场景?优缺点有哪些?有可能会出现什么问题?如何解决?
        8)、重点:TCC模式特点、原理以及应用场景?优缺点有哪些?有可能会出现什么问题?什么是空回滚和业务悬挂,如何解决?
        9)、SAGA模式特点、原理以及应用场景?优缺点有哪些?

九、Docker
    1、什么是Docker?优点是什么?有哪些核心概念?
    2、镜像操作命令有哪些?
        拉取、推送、查看、查看所有、删除、删除所有、制作镜像、导出镜像、加载镜像
    3、容器操作命令有哪些?
        查看所有、查看正在运行的容器、删除、强制删除、创建容器、创建并运行、
        启动容器、停止容器、重启容器、暂停容器、恢复容器、进入容器
    4、数据卷操作命令有哪些?
        创建数据卷、查看单个数据卷详情、查看数据卷列表、删除数据卷、删除未使用的数据卷、创建容器时挂载数据卷
    5、docker如何自定义镜像?docker file的语法是什么样的?
    6、docker compose是干嘛的?语法是什么样的?
    
    
十、ElasticSearch
    1、什么是ES?由什么语言编写?和Lunce的关系?什么是ELK?
    2、ES的核心概念有哪些?什么是索引?什么是文档?文档格式是什么?什么是映射?什么是DSL?
    3、什么是倒排索引?倒排索引建立过程?
    4、ES有哪些数据类型?keyword和text有什么区别?
    5、重要:说说用户输入框输入查询条件 进行ES搜索的底层原理过程
    6、ES分词器适合在什么字段上使用?分词器在ES中的使用场景有哪些?(建立倒排索引时对文档分词和用户搜索时对搜索条件分词)
    7、你们分词器用的哪种?为什么要自定义拼音分词器?为什么搜索时不能用拼音分词器?
    8、ES有哪些查询类型,分别用在什么场景?如何实现复合查询?要给指定的数据进行加分如何实现?
    9、ES能对搜索结果进行哪些处理?如何实现高亮?
    10、ES有哪些聚合查询?
    11、ES如何实现自动补全查询
    12、如何自定义分词器?
    13、如何实现es与mysql的数据同步?
    14、es集群节点有哪些类型?分别的职责是什么?
    15、什么是es脑裂问题?
    
    
十一、压测、高并发性能优化
    1、jemiter压测工具使用
    2、多级缓存(nginx共享字典、redis缓存、tomcat进程缓存)
    3、数据库主从读写分离(mycat)
    4、发布:
        开发环境、测试环境用的shell脚本自动发布(包括从git上拉取代码、打包编译、启动)
        预上线、线上环境用的jenkins持续集成    
    5、提交代码之前需要做什么?git pull

答出多少面试题能吃上饭?相关推荐

  1. 30道Web前端面试题,你能答出多少道?

    如今很多人受到Web前端的诱惑纷纷报名来学Web前端,他们希望自己通过5个月的系统学习就获得能找到一份高工资的Web前端开发工作,但是真的有那么容易吗?你真的有与高工资相对应的能力吗?你想知道自己的技 ...

  2. 20道大厂真实面试题,答出一半以上的都是高手

    最近身边有位仁兄挺厉害的,倒和别人故事里一下子进大厂不一样,是他想去阿里面试了且失败,还很遗憾失败了,之后愈挫愈勇,屡败屡战. 面试时觉得自己吃透两套架构,够面试用了,没想到像大厂面试官会问得这么深入 ...

  3. 答寒冬的面试题(1)

    本文也发表在我另一篇独立博客qingbob.com:  <答寒冬的面试题1> 有关注前端和微博的朋友一定留意到了前一阵寒冬和玉伯关于前端面试的讨论,后来老赵和左耳朵耗子也加入其中,讨论带来 ...

  4. 第二十五章:重新吃上饭的李恪

    第二十五章:重新吃上饭的李恪 可能李丽质永远都不会忘记了自己饿肚子饿了很久以来的第一顿饭吧. 吃的非常的香,吃完这顿饭以后,李丽质开始也参与到了洗皮衣的过程中,不过由于他个子比较小,所以只能做一些简单 ...

  5. 快问快答JS面向对象面试题

    1.说说你对闭包的理解 使用闭包主要是为了设计私有的方法和变量.闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露.在js中,函数即闭包,只有函数才 ...

  6. Java长见到的面试题,看你能答出几题,就知道自己有多菜了

    作者:Java3y 前言 只有光头才能变强 Redis目前还在看,今天来分享一下我在秋招看过(遇到)的一些面试题(相对比较常见的) 0.final关键字 简要说一下final关键字,final可以用来 ...

  7. 这八十一道java高级框架面试题你能答出多少题?

    话不多少直接上干货 1.什么是Maven? Maven使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外 ...

  8. android activity生命周期_Android岗高频面试题合一集,看你能答出几题?

    前言 面试季黄金时期来袭,想必许多朋友在这时有找工作.换工作.跳槽涨薪等想法,但你们都有一个相同的过程那就是面试.大家肯定想知道面试时都问哪些面试相关问题,所以就去网上查找题去刷题,为了省去大家找题的 ...

  9. 面试阿里技术专家岗,对答如流,这些面试题你能答出多少

    我对技术架构的理解 第一点是顶层设计.国家每 5 年有五年计划,这其实就是在国家整个层面的一个非常清晰的顶层架构设计,这里面对国民经济重大建设项目和生产力进行宏观的架构设计,本质上也是一种架构设计.在 ...

最新文章

  1. 单链表:头结点和头指针的实现方式
  2. 什么是.a和.so文件?
  3. oracle数据库编程实验2答案,Oracle数据库-作业2-答案
  4. 数易云备开启虚拟机备份新时代
  5. 在IIS中调试ASP.NET Core应用程序
  6. SSIS script task发邮件
  7. 电池型号 常见的电池型号有哪些
  8. 张朝阳:走出焦虑,不再焦虑
  9. 域服务器用户一直被锁,Windows Server 2019 域用户账户锁定策略
  10. linux apache 配置文件位置,Apache主配置文件httpd.conf 详解
  11. 电子榨菜之Mendix漫画
  12. 对初创公司进行估值的九种方法
  13. mysql 叶子节点_MySQL 树形结构 根据指定节点获取其所有叶子节点
  14. python animation 轨迹_Matplotlib animation模块实现动态图
  15. Linux基础之的权限数字含义
  16. 【MySQL 8.0 OCP 1Z0-908认证考试】 题库精讲--第二讲mysql主从
  17. 华为畅玩5A手机备忘录怎么同步到小米 MIX 2s?
  18. 阿里云服务器学生机的申请与使用
  19. LeetCode T48 Rotate Image
  20. 关系数据库主码、超码、候选码、主码(键)

热门文章

  1. 12306应该如何应对黄牛抢票
  2. 利用MATLAB打造属于自己的无人机遥感图像处理系统(1)
  3. sklearn.datasets.make_circles()函数和make_moons()函数
  4. 计算机房的英语怎么拼读,RGS是什么意思
  5. 计算机影视剪辑学什么课程,影视剪辑-授课计划.doc
  6. PyQt Phonon 模块初探
  7. 36氪acw_sc__v2
  8. 分享CFA学习笔记和资料!
  9. 在虚拟机中制作CA数字证书
  10. eDNA专题|今年超火的eDNA技术是什么