面试题集锦
文章平均质量分 75
赛尔号-
这个作者很懒,什么都没留下…
展开
-
MongoDB扫盲-黑马
MongoDB从入门到入土1、MongoDB相关的概念1.1MongoDB适用的场景1、数据量大2、写入操作频繁3、价值较低的数据,对事务性要求不高1.2MongoDB简介MongoDB是一个开源、高性能、无模式的文档型数据库,是NoSQL数据库产品中的一种,是最像关系型数据库的非关系型数据库。无模式:指MongoDB没有一个具体的列,他存储用的是类似于JSON的格式叫BSON,一种二进制的JSON文件MongoDB中的记录是一个文档,他是一个由字段和值对(field:value)组成原创 2022-04-04 16:59:03 · 1089 阅读 · 0 评论 -
SpringBoot整合Dubbo & Zookeeper
dubbo整合和面试题原创 2021-05-17 21:04:17 · 624 阅读 · 1 评论 -
DubboSPI机制
SPI原创 2021-12-27 17:14:17 · 1221 阅读 · 0 评论 -
ElasticSearch7.6入门学习
开始学习原创 2022-02-10 17:16:39 · 782 阅读 · 0 评论 -
黑马-ConcurrentHashMap
ConcurrentHashMap原创 2022-01-14 23:08:21 · 1033 阅读 · 0 评论 -
Spring-狂神
参考来源:公众号【狂神说】原创 2022-01-12 15:21:10 · 366 阅读 · 0 评论 -
算法题搜集和练习
算法原创 2021-12-23 17:08:53 · 102 阅读 · 0 评论 -
记录一次OOM排查过程
1、查看当前堆的使用情况[root@localhost ~]# jmap -heap 27900Attaching to process ID 27900, please wait...Debugger attached successfully.Client compiler detected.JVM version is 20.45-b01using thread-local object allocation.Mark Sweep Compact GCHeap Configuratio原创 2021-12-20 16:10:54 · 274 阅读 · 0 评论 -
ThreadLocal原理
1、使用场景线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。代码示例:public class Demo27 { private static final ThreadLocal<String> myThreadLocal = ThreadLocal.withInitial(() -> "This is the initial value"); public static void main(String[] args) {原创 2021-12-15 16:21:42 · 634 阅读 · 0 评论 -
黑马-Redis
# 1、Redis基础2、Redis高级1.1持久化1、RDB(关注点:数据)概述将当前数据进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据启动方式命令:127.0.0.1:6379> save作用:手动执行一次保存操作,默会在Redis的安装路径的data目录下生成一个dump.rdb二进制文件save指令相关配置dbfilename dump.rdb说明:设置温蒂数据库文件名,默认值为dump.rdb经验:通常设置为dump-端口号.rdbdir原创 2021-12-10 22:38:45 · 1157 阅读 · 0 评论 -
黑马-NIO
2、Java的io演进之路2.1io模型基本说明io模型:就是用什么样的通道或者说是通信模式和架构进行数据的传输和接收,很大程度上决定了通信的性能,Java共支持3种网络编程的io模型:BIO、NIO、AIO2.2io模型Java BIO同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销Java NIO同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复原创 2021-12-04 20:38:39 · 726 阅读 · 0 评论 -
黑马-JVM
黑马JVM学习笔记原创 2021-11-22 21:11:19 · 711 阅读 · 0 评论 -
黑马-并发编程讲解
黑马JVM学习笔记原创 2021-09-26 21:11:43 · 812 阅读 · 0 评论 -
Java中重写hashCode()和equals()的作用
点击查看原创 2021-09-20 12:14:59 · 102 阅读 · 0 评论 -
Redis和MySQL双写一致性
点击查看原创 2021-09-18 14:27:46 · 176 阅读 · 0 评论 -
深入理解JVM虚拟机
深入理解Java虚拟机原创 2021-09-17 22:04:33 · 167 阅读 · 0 评论 -
Java并发编程的艺术
Java并发编程的艺术读书笔记原创 2021-07-19 21:31:23 · 1826 阅读 · 0 评论 -
Redis
Redis深度历险(核心原理与应用时间读书笔记)原创 2021-07-12 21:43:43 · 160 阅读 · 0 评论 -
Mybatis插件编写
1、首先复习MyBatis原理2、插件原理每个创建出来的对象不是直接返回的,而是intercepterChain.pluginAll(parameterHandler)包装过的获取到所有的Intercepter(拦截器)(插件需要实现的接口),调用interceptor.plugin(target),返回target包装后的对象插件机制,我们可以使用插件为目标对象创建一个代理对象:AOP,我们的插件可以为四大对象创建出代理对象,代理对象可以拦截到四大对象的每一个执行3、自定义插件编写Int原创 2021-07-11 11:57:25 · 326 阅读 · 0 评论 -
MyBatis原理
尚硅谷-MyBatis原创 2021-07-08 21:33:21 · 399 阅读 · 3 评论 -
SpringBoot自动配置原理
点击查看原创 2021-07-01 15:54:07 · 78 阅读 · 0 评论 -
Docker基础入门和使用
Docker学习简介1、docker是什么?解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的的容器虚拟化技术。2、传统虚拟和docker的不同之处传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需应用进程容器内的应用进程直接运行于宿主内核,容器没有自己的内核,而且也没有硬件虚拟,因此容器要比虚拟机更为轻便每个容器之间相互隔离,每个容器有自己的容器系统,容器进程之间不会相互影响,能区分计算资源3、docker架构图4、docker的三原创 2020-10-25 14:14:39 · 157 阅读 · 0 评论 -
SpringBoot之自定义starter
springboot场景启动器的作用:引入相关的依赖jar包自动完成bean的配置和加载命名规范官方的starter命名应当遵循:spring-boot-starter-xxx,可以不加版本号,因为父依赖已经添加第三方的starter命名应当遵循:xxx-spring-boot-starter,必须添加版本号...原创 2020-06-02 17:54:26 · 577 阅读 · 0 评论 -
SpringBoot面试题
1、SpringBoot的运行机制从@SpringBootApplication开始,进来之后包含三个注解,第一个注解是@SpringBootConfiguration,其实也就是spring中的@Configuration,这个注解表明这个类是配置类,第二个注解是@ComponentScan,这个注解也是spring里面的,他用来将指定包下面需要装配的组件注册到容器里面,第三个注解是@EnableAutoConfiguration,这个注解是SpringBootA自动配置的核心注解,进入@EnableA原创 2020-05-26 16:51:50 · 979 阅读 · 1 评论 -
RabbitMQ面试题
1、消息堆积当生产消息的速度长时间,远远大于消费的速度时,就会造成消息堆积消息堆积的影响可能导致新的消息无法进入队列可能导致旧消息无法删除消息等待消费的时间过长,超出了业务容忍的范围产生消息堆积的情况生产者突然大量发布消息消费者消费失败消费者性能出现瓶颈消费者挂掉解决办法排查消费者的消费性能瓶颈增加消费者的多线程处理部署多个消费者2、消息丢失在实际的生产环境中有可能出现一条消息因为一些原因丢失,,导致消息没有消费成功,从而造成数据不一致的问题,造成原创 2020-05-24 16:33:57 · 938 阅读 · 0 评论 -
ArrayList面试题
ArrayList面试题原创 2020-05-18 21:05:12 · 247 阅读 · 0 评论 -
微服务+SpringCloud
1、什么是微服务?学术上定义(了解):微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,每个服务独立运行在其自己独立的进程中,服务之间相互协调配合,为用户提供最终价值。服务之间采用轻量级的通信机制相互沟通(通常是基于HTTP的RESTful API)业务上定义(面试):微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,,每个微服务提供单个业务功能的服务,一个服务做一件事。从技术角度看就是一种小而独立的处理过程,类似进程的概念,能够自行单独启动或销毁,拥有原创 2020-05-17 12:32:55 · 175 阅读 · 0 评论 -
数据库面试题
数据库面试题1、数据库引擎2、SQL优化分析查询性能下降的原因1、查询语句写的烂2、索引失效(不存在或未使用)3、关联查询太多join4、服务器调优及参数设置SQL执行顺序1、手写顺序SELECT DISTINCT < select list> FROM < left_ table > < join_ type >JOIN < right table > ON < join condition>WHERE原创 2020-05-17 12:31:21 · 523 阅读 · 0 评论 -
Spring面试题整理
1、什么是Spring?Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架2、什么是IOC?Spring通过IOC技术进行组件间的解耦,当应用了IOC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。3、什么是AOPAOP(面向切面编程),可以说是OOP(面向对象)的补充和完善,OOP允许定义从上到下的关系,但并不适合定义从左到右的关系,例如日志功能。日志代码往往水平地分散在所有对象层次中,而与他所散布到的对象的核心功能毫无关系。对于原创 2020-05-17 12:20:43 · 167 阅读 · 0 评论 -
SpringMVC面试题
1、SpringMVC运行流程1、用户向服务器发送请求,请求被前端控制器DispathcerServlet捕获。2、DispathcerServlet对请求的URL进行解析,得到请求资源标识符(URI),然后根据URL调用HandlerMapping获得Handler配置的所有相关对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回。3、 DispatcherServlet 根据获得的Handler,选择一个合适的Handle原创 2020-05-17 12:19:17 · 144 阅读 · 0 评论 -
Redis面试题
Redis面试题1、redis的数据类型key的常用命令keys *:查看所有的keyexists key:判断某个key是否存在move key db:移动某个key到指定的库(切换库:select 1/2/3/4/……)expire key 秒钟:为给定的key设置过期时间ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已过期type key:查看key的类型string(字符串,key-value模式)1、可以包含任何数据类型,包括图片和序列化对象2、val原创 2020-05-17 12:14:49 · 158 阅读 · 0 评论 -
mybatis面试题
mybatis面试题1、什么是mybatis?mybatis是一个可以自定义SQL、存储过程和高级映射关系的持久层框架2、为什么mybatis是一个半自动的ORM框架?与全自动的区别在哪里?hibernate属于全自动的ORM映射框架,使用hibernate查询关联对象或者集合时,可以根据对象关系模型直接获取,所以他是全自动的。而mybatis在查询关联对象或关联集合时,需要手动编写SQL来完成,所以称之为半自动的ORM框架。3、mybatis是如何实现分页的?分页插件的原理是什么?1、myba原创 2020-05-17 12:10:16 · 259 阅读 · 0 评论 -
JDK8新特性
1、四大核心函数式接口消费型void accept(T t)供给型T get()函数型R get(T t)断定式boolean test(T t)//举例:public class Lambda01 { @Test public void test(){ happy(500.00, new Consumer<Double>() { @Override public vo原创 2020-05-17 12:01:16 · 93 阅读 · 0 评论 -
JDK和CGLIB动态代理实现的区别
1、JDK动态代理代理对象由JDK动态生成,只需要有JDK环境就行。JDK动态代理基于拦拦截器和反射实现,使用条件1、被代理对象必须要实现接口2、必须实现InvocationHandler接口3、使用Proxy.newProxyInstance产生代理对象2、CGLIB代理CGLIB是一个强大的高性能的代码生成包,它可以在运行期间扩展Java类和实现Java接口CGLIB底层是通过使用小而快的字节码处理框架ASM,来转换字节码并生成新的类实现CGLIB动态代理必须实现Meth原创 2020-05-17 11:59:04 · 154 阅读 · 0 评论 -
Java面试题-尚硅谷版
java面试题1、volatile关键字java虚拟机提供的轻量级的同步机制,具有三大特性:保证可见性一个线程修改了主内存中的值之后通知其他线程不保证原子性原因:写覆盖如何解决:1、方法加sync修饰 2、使用java.util.current包下面的Automic提供的类禁止指令重排多线程环境中线程交替执行,由于编译器存在优化重排的存在,两个线程中使用的变量能否保证一致性是无法确定的,结果无法预测,因此要禁止指令重排谈谈JMM(java内存模型)1、JMM本原创 2020-05-16 22:40:52 · 978 阅读 · 0 评论 -
Java基础面试题
Java基础常见的面试题原创 2020-05-16 22:33:58 · 316 阅读 · 0 评论 -
HashMap面试题
1、hashmap的基础:哈希表的简介核心是基于哈希表的桶和链表,根据元素计算的hashcode放到不同的桶中去O(1)的平均查找、删除时间致命的缺陷是哈希值碰撞2、java7中hashmap的实现:数组加链表重要知识点:初始容量默认的初始容量16,每次增加两倍,容量总是2的幂为什么数组大小一定要是2的幂?当根据元素的哈希值为元素确定桶的时候,根据算法hash & (length-1)计算,因为length-1的值总是 11…11,任何数与1相与值还是1原创 2020-05-16 22:42:25 · 90 阅读 · 0 评论