java IO面试题 答:一个线程发起了 I/O 操作后,必须等待数据读取或者写入完成才能继续执行其他操作。如果 I/O 请求不能立即完成,线程会一直等待,直到有数据可以处理或者是 I/O 操作真的完成。答:非阻塞 I/O 是指在请求执行一个操作时,如果该操作不能立即完成,系统会立即返回,而不是等待操作完成。这样,程序可以继续执行后续的指令,不会被迫停在那里等待;优势:1)并发处理;2)资源优化;3)实时应用;4)事件驱动应用;
SpringBoot面试题 答:@SpringBootApplication:用于标识一个Springboot工程,该注解包含三个注解:1@SpringBootConfiguration:该注解实际是一个@Configurtion表示启动类也是一个配置类;3读取环境变量配置信息;答:1集成方式: 在Springboot应用中,可以通过修改pom.xml文件添加外部Tomcat的依赖,并配置Tomcat相关的属性。7在其他项目中使用你的starter:在其他Spring Boot项目中,通过添加你的starter的依赖到你的。
java网络面试题 第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1, 并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功, Client和Server进入ESTABLISHED(链接)状态,完成三次握手,随后Client与Server之间可以开始传输数据了。答:1)代码需要判断socket,一旦read返回0,断开连接,read返回负,检查一下errno,如果不是AGAIN,也断开连接。
java基础面试题 答:缓存会根据进来的请求保存输出内容的副本,例如html页面, 图片,当下一个请求来到的时候:如果是相同的URL,缓存直接使用副本响应访问请求;优点:1)通过缓存可以减少冗余的数据传输,从而达到节省流量的效果;2)缓存还能够缓解带宽的瓶颈问题和瞬间拥塞问题;3)缓存降低了距离延时,因为从较远的地方加载页面会更慢一些。
mysql面试题 目录1、mysql的inndb索引?2、为什么不使用二叉查找树?3、为什么不使用平衡二叉树?4、为什么不使用B树?5、mysql的存储引擎?mysql的三大引擎是啥?MVCC?更新的数据的时候怎么确定版本的?幻读怎么解决的?MySQL有哪几种日志?redo log主要有什么用?提交之后100%落盘吗?为什么MySQL要写到redo log buff内存?mysql的Join原理以及索引数据结构和实现原理?索引树是如何维护的?使用explain优化sql和索引?
redis面试题 答:在流量洪峰达到时,大量的请求导致缓存服务宕机,所有请求访问db造成不可用称为雪崩;解决办法:1)采用集群架构实现;2)对服务接口降级;3)对缓存监控,达到阈值时通过自动故障转移和不重要的接口;4)将比较常用的key缓存在本地,减少redis访问;
kafka面试题 答:producer直接将数据发送到broker的leader(主节点),不需要在多个节点进行分发,为了帮助producer做到这点,所有的Kafka节点都可以及时的告知:哪些节点是活动的,目标topic目标分区的leader在哪。答:Kafa consumer消费消息时,向broker发出"fetch"请求去消费特定分区的消息,consumer指定消息在日志中的偏移量(offset),就可以消费从这个位置开始的消息,customer拥有了offset的控制权,可以向后回滚去重新消费之前的消息;
jvm面试题 目录jvm的监控工具?Java虚拟机的内存布局?说说Java虚拟机的生命周期及体系结构?Java虚拟机中,数据类型可以分为哪几类?JVM里的有几种类加载器(classloader),为什么会有多种?类加载机制,也就是双亲委派模型?深入分析Classloader,双亲委派机制?什么是双亲委派机制?介绍一些运作过程,双亲委派模型的好处?什么情况下我们需要破坏双亲委派模型?JVM如何加载字节码文件?java中垃圾回收机制GC原理等?GC分哪两种,Minor GC
spring面试题 1实例化ApplicationContext对象;2调用Bean工厂后置处理器完成扫描;3循环解析扫描出来的类信息;4实例化一个BeanDefinition对象存储解析出来的信息;5把实例化好的BeanDefinition对象put到beanDefinitionMap中缓存起来,以便后面实例化bean;
mysql面试题 1、mysql的inndb索引? 答:InnoDB使用页存储结构,页存储格式 1.页头(Page Header):记录页面的控制信息,共占150字节,包括页的左右兄弟页指针、页面空间使用情况等。 2.最小虚记录、最大虚记录:两个固定位置存储的虚记录,本身并不存储数据。 3.记录堆(record heap):指上图的橙黄色部分,表示页已分配的记录空间,也是索引数据的真正存储区域。记录堆分为两种,有效记录和已删除记录。有效记录是索引正常使用的记录,而已删除记录表
kubernetes1.28部署(Centos7) 如果 DNS 不支持主机名称解析,还需要在每台机器的。文件中添加主机名和 IP 的对应关系。3.容器采用Containerd。2.采用kubeadm部署。
GIt(2.46)使用 暂存区,或者叫待提交更新区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。doc/*.txt #会忽略doc目录下的所有文件,但不包括doc下的其它目录文件。面是一个路径分隔符(/)表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)面是一个路径分隔符(/)表示要忽略的文件在此目录下,而子目录中的文件不忽略。--git add .1.忽略文件中的空行或以井号(#)开始的将被忽略。