高频面试题
汇集各互联网大厂的高频面试题
青天大脑爷
不为失败找理由,只为成功找方法。
展开
-
【RabbitMQ】2、谈谈你对RabbitMQ运转流程的理解?
运转流程原创 2020-06-14 08:17:58 · 242 阅读 · 0 评论 -
【Mysql高级】你对Mysql是怎样优化的
一、Mysql体系结构二、存储引擎存储数据,建立索引,更新数据等技术的实现方式。基于表,不是基于库的。查看数据库的存储引擎show engines;各种存储引擎的特性InnoDB存储方式表结构+数据MyISAM不支持事务存储方式MEMORY存放于内存中,对应一个磁盘文件格式为.frm。有利于数据快速处理,但是内存资源有限,服务器关闭数据会丢失。MERGE...原创 2020-06-14 08:00:28 · 135 阅读 · 0 评论 -
【Mybatis高级】手写一个Mybatis框架?
原创 2020-06-13 15:40:13 · 127 阅读 · 0 评论 -
【Springboot】日志框架的分类与选择
一、框架选择SLF4j和logback/log4j/log4j2 皆出自同一人之手,logback是log4j的升级版二、SLF4j的适配三、遗留问题四、Springboot的应用原创 2020-06-13 08:59:36 · 238 阅读 · 0 评论 -
【Springboot】自动配置原理精髓
原创 2020-06-13 08:14:36 · 158 阅读 · 0 评论 -
【Springboot】配置加载顺序的优先级
原创 2020-06-13 07:54:54 · 230 阅读 · 0 评论 -
【Springboot】激活profile切换的三种方式?
原创 2020-06-13 07:42:33 · 225 阅读 · 0 评论 -
【Springboot】@Value和@ConfigurationProperties区别?
原创 2020-06-13 07:28:10 · 113 阅读 · 0 评论 -
【Netty】谈谈你对BIO的理解?
一、简介BIO 同步阻塞IO 一个连接一个线程,可以通过线程池机制来改善适用于连接数目比较小且固定的架构。二、BIO编程流程(1)服务端启动一个serverSocket(2)客户端启动Socket对服务器进行通信,默认情况下服务器端需要对每个客户建立一个线程与之通信。(3)客户端发出请求后,先咨询服务器是否有线程相应,如果没有则等待或者被拒绝。(4)如果有相应,客户端线程会等待请求结束后,再继续执行。三、BIO示例、BIO问题分析...原创 2020-06-11 17:48:50 · 176 阅读 · 0 评论 -
【高频面试题】java.util.concurrentModificationException解决方案?
一、故障原因java.util.concurrentModificationExceptionArrayList在高并发情况下的并发修改异常二、导致原因并发争抢修改导致三、解决方案1、new Vector()2、Collections.synchronizedList(new ArrayList<>())3、new CopyOnWriteArrayList<>();四、优化建议使用方案3...原创 2020-06-11 09:47:20 · 220 阅读 · 0 评论 -
【SpringMVC】@ModelAttribute底层实现原理
原创 2020-06-11 07:59:30 · 336 阅读 · 0 评论 -
【RabbitMQ】1、RabbitMQ概述
一、作用1、异步处理2、解耦合3、削峰填谷二、AMQP和JMSAMQP 定义网络减缓的数据格式JMS java面向中间件的API,分布式系统中发送消息区别三、rabbitMq模式四、RabbitMq Linux安装1、安装Socatyum install gccyum install socat2、安装erlang语言3、安装rabbitMq4、开启管理界面及配置去掉 loopback user 注释 wq保存...原创 2020-06-11 06:26:57 · 192 阅读 · 0 评论 -
【Mysql高级】谈谈你对存储过程的了解?
一、概述经过事先编译存储在数据库的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作。减少数据在数据库和应用服务器之间的传输,从而提高了数据处理效率。存储过程和函数的区别:函数有返回值,存储过程没有。二、存储过程维护调用存储过程查看存储过程删除三、存储过程的语法结构17...原创 2020-06-10 17:20:29 · 257 阅读 · 0 评论 -
【Mysql高级】谈谈你对视图的了解?
一、概述视图是一种虚拟存在的表。视图就是一条SELECT查询语句。优势作用:①简单:不需要关系表的关联关系、表结构、筛选条件②安全:只能访问到他们被允许查询的结果列。③数据独立:一旦视图结构确定,可以屏蔽表结构变化对用户的影响。原表修改列名,则可以通过修改视同来解决,不会对访问者造成影响。二、创建和修改视图三、查看和删除视图删除...原创 2020-06-02 17:22:44 · 331 阅读 · 0 评论 -
【Mysql高级】谈谈你对索引的了解
一、索引概述帮助Mysql高效获取数据的数据结构。在数据之外,数据库还维护了特定查找算法的数据结构,这些数据结构以某种方式引用数据。这就是索引。二、索引的优缺点三、索引的结构1、BTREE索引实际上是B+数,多路平衡搜索树...原创 2020-06-02 17:05:14 · 179 阅读 · 0 评论 -
【Netty】二、IO模型
1、Java IO模型BIO 同步并阻塞 传统阻塞型 一个连接对应一个线程当客户端请求的时候服务器端会启动一个线程处理缺点:客户端很多的时候,很产生大量线程,产生不必要开销。NIO 同步非阻塞 一个线程可以处理多个请求,客户端发送的请求注册到多路复用器上,通过轮询来连接I/O请求。AIO 异步非阻塞 异步通道 ,有效的请求才会启动线程。2、使用场景BIO适用于连接数目小,对服务器要求高。程序简单易理解NIO适用于连接数目多,连接短的架构。比如...原创 2020-06-02 14:31:04 · 100 阅读 · 0 评论 -
【Netty】一、Nety的介绍
Netty的概念Netty由JBOSS提供的Java开源框架,现为Github开源框架。Netty是一个异步的、基于事件驱动程序的网络应用框架。Netty针对TCP/IP协议,通过JDK io/网络、对NIO进行了封装和优化体系简图如下异步Netty的应用场景① 在分布式系统中,各个节点之间需要远程服务调用,高性能的RPC框架必不可少,Netty作为高性能基础通信框架,被RPC框架使用。 例如 Dubbo②游戏行业③大数据领域 经典Hadoop的...原创 2020-06-02 14:13:21 · 1093 阅读 · 0 评论 -
【Redis实战】在项目中缓存是怎么使用的?缓存使用不当会造成什么后果?
一、在项目中缓存是怎么使用的?结合项目中的业务,加一个场景二、为什么要用缓存?1、高性能走内存2、高并发可以分担数据库的其你去压力三、Redis问题1)缓存与数据库双写不一致2)缓存雪崩3)缓存穿透4)缓存并发竞争...原创 2020-06-02 09:03:44 · 483 阅读 · 0 评论 -
【高频面试题】Cas你知道吗?
一、什么是CAS?1、比较并交换AtomicIntegercompareAndSet 如果期望值(主内存的值)与修改值(工作内存的值)相同,则修改;类似GitHub的提交版本号。2、CAS的底层原理是什么?它是一条并发原语。比较当前工作内存和主内存的值,如果相同则执行规定操作,否则继续直到主内存和工作内存的值一致为止。CAS应用CAS中有三个操作数,内存值V,期望值A,要修改的值B。当且仅当V等于A时,才会将内存中的V替换为B,否则什么都不做。...原创 2020-06-03 06:45:32 · 1218 阅读 · 0 评论 -
【Mysql高级】 Mysql5.6 Linux安装
MySQL linux 安装1、查找原始mysql是否存在rpm -qa| grep -i mysql2.删除rpm -e mysql-**** --nodeps3、上传并解压tar -xvf mysql -C /Mysql会看到很多rpm包4、需要安装yum库5、更新yum6、安装mysql客户端和服务端7.安装完成...原创 2020-06-02 07:07:46 · 190 阅读 · 0 评论 -
【高频面试题】来聊聊volatile关键字吧
一、并发和并行的区别并发 多个线程同时访问同一个资源并行 各种事情一路并行做二、谈谈你对volatile的理解1、volatile是java虚拟机提供的轻量级同步机制 保证可见性,不保证原子性,禁止指令重排序。2、JMM2.1什么是线程可见性?证明2.2什么是原子性? 不可分割,完整性。某个线程在做某个业务的时候,中间不可以被加塞或分割。需要整体完整。 要么同时成功,要么同时失败。为什么volatile不保证原子性?多线程情况下,...原创 2020-06-01 20:03:30 · 219 阅读 · 0 评论 -
【高频面试题】 介绍一下你对NIO的理解
一、NIO原理1、缓冲区缓冲区其实就是一个数组,读取和写入都会用到缓冲器。最常用的就是ByteBuffer2、通道通道传输的数据是基于缓冲区的,不能直接对通道就行写或读的操作。通道和流的不同之处通道是双向的。当读或写的事件发生时,可以从Selector获取SelectionKey,同时从key中找到发生的事件和具体的selectableChannel`3、选择器selector类似一个观察者,当有事件发生的时候,它会通知,传回一组selectionKey,从而定位到通道,获取数据原创 2020-05-30 18:46:05 · 603 阅读 · 0 评论