Java面试
文章平均质量分 90
kksk+
懒
展开
-
JAVA并发面试题
一、并发的三大特性1、原子性:原子性是指在一个操作中cpu不可以在中途暂停然后再调度,即不被中断操作,要不全部执行完成,要不都不执行。就好比转账,从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元,往账户B加上1000元。2个操作必须全部完成。private long i = 0;public void calc(){ i++;}将 i从主存读到工作内存中的副本中 +1的运算 将结果写入工作内存 ...原创 2021-11-03 16:46:07 · 352 阅读 · 0 评论 -
计算机网络面试题
目录一、BIO、NIO、AIO分别是什么二、Netty的线程模型三、零拷贝是什么四、TCP的三次握手和四次挥手五、HTTP和HTTPS六、HTTPS是如何通过保证安全传输七、跨域请求是什么?会有什么问题?如何解决?八、什么是SSO?与OAuth2.0有什么关系九、浏览器发出一个请求到收到响应经历了哪些步骤?十、epoll和poll的区别一、BIO、NIO、AIO分别是什么BIO:同步阻塞lO,使用BIO读取数据时,线程会阻塞,并且需要线程主动去查询是否有数..原创 2021-11-02 12:12:22 · 280 阅读 · 0 评论 -
Redis面试题
一、Redis单线程为什么这么快原理Redis基于Reactor(响应式模式)开发了网络事件处理器(单线程)又叫作文件事件处理器file event handler。它是单线程的,所以Redis才叫做单线程的模型(具有后台线程),它采用lO多路复用机制来同时监听多个Socket,根据Socket上的事件类型来选择对应的事件处理器来处理这个事件。可以实现高性能的网络通信模型,又可以跟内部其他单线程的模块进行对接,保证了Redis内部的线程模型的简单性。文件事件处理器的结构包含4个部分:多个Socke原创 2021-11-01 22:40:44 · 571 阅读 · 0 评论 -
MySQL面试题
一、索引的基本原理索引用来快速地寻找那些具有特定值的记录。如果没有索引,一般来说执行查询时遍历整张表。索引的原理:就是把无序的数据变成有序的查询把创建了索引的列的内容进行排序 对排序结果生成倒排表 在倒排表内容上拼上数据地址链 在查询的时候,先拿到倒排表内容,再取出数据地址链,从而拿到具体数据二、SQL耗时、慢查询优化在业务系统中,除了使用主键进行的查询,其他的都会在测试库上测试其耗时,慢查询的统计主要由运维在做,会定期将业务中的慢查询反馈给我们。慢查询的优化首先要搞明白慢的原因是什.原创 2021-10-29 15:06:57 · 583 阅读 · 0 评论 -
Spring面试题
一、Mybatis的插件原理,如何编写一个插件答: Mybatis 只支持针对 ParameterHandler、ResultSetHandler、StatementHandler、Executor这4种接口的插件, Mybatis使用JDK的动态代理,为需要拦截的接口生成代理对象以实现接口方法拦截功能,每当执行这4种接口对象的方法时,就会进入拦截方法,具体就是InvocationHandler的 invoke()方法,拦截那些你指定需要拦截的方法。ParameterHandler:写SQL.原创 2021-10-24 11:39:03 · 386 阅读 · 0 评论 -
JVM面试题
一、在JVM中,哪些是共享区,哪些可以作为GC ROOT1、堆区和方法区都是线程共享的,栈、本地方法栈、程序计数器是每个线程独有的2、什么是gc root,JVM在进行垃圾回收时,需要找到“垃圾”对象,也就是没有被引用的对象,但是直接找“垃圾”对象是比较耗时的,所以反过来,先找“非垃圾”对象,也就是正常对象,那么就需要从某些“根”开始去找,根据这些“根”的引用路径找到正常对象,而这些“根”有一个特征,就是它只会引用其他对象,而不会被其他对象引用,例如:栈中的本地变量、方法区中的静态变量、...原创 2021-10-23 11:23:07 · 311 阅读 · 0 评论 -
JAVA基础面试题
一、JDK JRE JVM 区别1、英文全称JDKJava Develpment kitjava开发工具(提供给开发人员使用)JREJava Runtime Environmentjava运行时环境(提供给用户运行java程序)JVMJava Virtual Machine java虚拟机(将class文件解释成机器码)2、包含关系二、Jdk1.7 -...原创 2021-10-22 16:08:49 · 294 阅读 · 0 评论