2022_又一家公司面试的内容

诚实的说都是技术面试官:基本都是技术问题:

第一位面试官:(偏重应用解决和写代码的实现)
1位面试官:
Javase :java equals,hashcode 方法区别:
equals 与 == 操作符的区别总结如下:

若 == 两侧都是基本数据类型,则判断的是左右两边操作数据的值是否相等

若 == 两侧都是引用数据类型,则判断的是左右两边操作数的内存地址是否相同。若此时返回 true , 则该操作符作用的一定是同一个对象。

Object 基类的 equals 默认比较两个对象的内存地址,在构建的对象没有重写 equals 方法的时候,与 == 操作符比较的结果相同。

equals 用于比较引用数据类型是否相等。在满足equals 判断规则的前体系,两个对象只要规定的属性相同我们就认为两个对象是相同的。

oracle 窗口函数:
这个不太懂:发现这个是ISO的标准不一样,本质一个东西:
<窗口函数>的位置,可以放以下两种函数:

1) 专用窗口函数,包括后面要讲到的rank, dense_rank, row_number等专用窗口函数。

2) 聚合函数,如sum. avg, count, max, min等

因为窗口函数是对where或者group by子句处理后的结果进行操作,所以窗口函数原则上只能写在select子句中。

如果一个应用出现100% 的问题如何解决呢?解决方案呢?

代码规范之类的检查:

=========================
最近的项目的浅谈和展开技术栈。
数据迁移的工作和分类:

Springboot 机制:

Spring clound 的负载均衡机制:

Jvm 调参的方法:

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
第二位面试官:(偏重源码分析和扩展使用)
问的比较深了:
展开对技术的深度追问:
线程池了,远离啦,拒绝策略等。
扣款的消息补偿机制了。为什么不使用消息补偿机制了。

redis 的String列表:
缓存击穿的解决方案:

spring IOC 和DI:
IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。
 IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。
 IOC(控制反转):全称为:Inverse of Control。从字面上理解就是控制反转了,将对在自身对象中的一个内置对象的控制反转,反转后不再由自己本身的对象进行控制这个内置对象的创建,而是由第三方系统去控制这个内置对象的创建。

DI(依赖注入):全称为Dependency Injection,意思自身对象中的内置对象是通过注入的方式进行创建。
那么IOC和DI这两者又是什么关系呢?
IOC就是一种软件设计思想,DI是这种软件设计思想的一个实现。

redis 部署模式:

双亲委派模型:
就要开始破坏双亲委派模型了。首先声明哈,双亲委派模型,JVM并没有强制要求遵守,只是说推荐。

简单点说,所谓的双亲委派模型,就是加载类的时候,先请求其父类加载器去加载,如果父类加载器无法加载类,再尝试自己去加载类。如果都没加载到,就抛出异常。
你说的打破模型是:

双亲委派机制,是按照加载器的层级关系,逐层进行委派。
1.保证安全性,层级关系代表优先级,也就是所有类的加载,优先给启动类加载器,这样就保证了核心类库类。

2.避免重复,如果父类加载器加载过了,子类加载器就没有必要再去加载了。
1.自定义类加载器 ,重写loadclass方法
2, SPI机制绕开loadclass 方法。当前线程设定关联类加载器。
说真的,还吓了我一跳,我以为对方是要把整个层次都要搞一篇,后来才知道这货是自定义classLoader,SPI 机制。KK对方。

SpringBoot的加载tomcat,Jetty的配置的加载顺序的源码分析:
我认为是默认的容器比如tomcat ,对方说根据类型注入一个接口,
但是完全是根据注入2个呀,只是对应的属性不一样。
报错支的是同一个port 错误,这是当然,理论上是可以的,部署2个不同的端口的项目,
其实也是可以的,只是没有必要性。
BD自己。

既然肯定会知道的,但是是不是完全清楚, A question 就可以知道了,意思一下就可以了。
但是最好不要DZ面试官。1方面D肯定会知道一点的。

面试说的,我有点不耐烦了,问这么多,但是最好保持一个良好的态度。

mybatis 的插件扩展:

四大对象的每个对象在创建时,都会执行 Interceptor.pluginAll(),会经过每个插件对象的 plugin() 方法,目的是为当前的四大对象创建代理。代理对象就可以拦截到四大对象相关方法的执行,因为要执行四大对象的方法需要经过代理。

我认为挺好的, Redis的字符串是动态字符串,是可以修改的字符串,内部结构的实现类似于Java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配,如图2所示,内部为当前字符串分配的实际空间capacity一般要高于实际字符串长度len。当字符串长度小于1MB时,扩容都是加倍现有的空间。如果字符串长度超过1MB,扩容时一次只会多扩1MB的空间。字符串最大长度为512MB。

推荐阅读:
https://blog.csdn.net/dc282614966/article/details/113740666

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执于代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值