2020秋招过程中遇到的不会的面试题

一、Java中值类型和引用类型的区别?

            Java中包含8种基本数据类型,分别是  byte,boolean,char,short,Jint,float,double,long,其余的都属于引用数据类型。
            其一:在于值类型的实例是直接分布在栈中,而引用类型在栈中只有一个变量名称类似于一个指针指向堆内存中,在使用上值类型的效率更高。
            其二:在于值类型的变量包含了数据的副本,而引用类型的变量只包含了所指向的堆内存地址,当使用参数传递时,值类型的参数传递不会影响到原来的数据,而引用类型的参数传递可能影响到原本的引用类型中的数据。
            其三:值类型的数据内存不需要GC来回收,当作用域结束后会自动释放,而引用类型需要靠GC来回收内存。
            其四:值类型是封闭类型数据,不能够被继承,而引用类型可以作为其他类的父类。
            其五:值类型是继承自System.ValueType,System.ValueType再继承System.Object,而引用类型是直接继承自System.Object。                

二、常用排序算法时间复杂度、空间复杂度分析
总结图片来源https://www.cnblogs.com/eniac12/p/5329396.html
三、说说Redis的多线程

   ???,我:Redis不是单线程的吗?面试官:好了,这个过了。我:??
   后面查了资料,是这样说的Redis的单线程指的是所有的网络请求都是用单线程处理的,所以不用担心并发的安全性问题,但是在其他处理模块也是用的多线程来处理的。在Redis中处理网络请求的模块称为文件事件处理器。由多个套接字、IO多路复用、文件事件派发器、事件处理器几个部分组成。而文件事件分派器的队列是单线程的。

在这里插入图片描述
四、Mybatis中dao层的接口类和配置文件是如何对应的?

   配置文件中的每一条sql语句都会被封装成MappedStatement对象,然后会通过
   HashMap集合保存起来,通过调用getMapper()方法可以判断出是否有注册过Mapper
   接口,然后通过生产代理类工厂来生成代理类MapperProxy,通过MapperProxy来调
   用invoke方法,将mapper.xml里面配置的sql语句和对应的mapper接口方法进行关联
   并放入map缓存中,后期直接走缓存了。最后执行execute()方法。Mapper接口是没有
   实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为key值,可唯一定
   位一个MappedStatement。

五、mysql数据库索引为什么使用B+树?

简化一下回答,相较于B树而言:B树中的每一个节点都存储数据信息,而B+树做了优
化,只有叶子节点存储数据信息,非叶子节点存储索引,节省了不必要的查询,B树在
查询遍历等操作时需要中序遍历才能够得到结果,B+树的是有序的,并且B+树提高了
IO性能并解决了遍历效率低的问题,B+树只需要遍历叶子节点就可以遍历整个树,可以
范围查询,而B树不行。

六、后续的再更新

    留此共勉
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值