1.Long 128l
2.spring事物的特性和实现原理
3.spring初始化bean的步骤
4.spring的ioc和aop怎么实现
5.数据库的acid怎么实现
6.如何排查性能问题,怎么解决
7.内存溢出
8.消息中间件 队列的通讯步骤
9.缓存框架 mem redis ehk?对比
10.kafka和rabbitmq对比
11.怎么保证高可用
12.扩容依据什么?如何扩容至最佳?
13.docker编排系统理解 mesos为例的
14.tomcat调优
15.hive查询组建用过哪些
16.mybatis的缓存机制
17.队列重复消费的问题
以下是查资料学习后的理解[我必须要这么做了]
1.Long,Integer在直接==时会用value()函数返回的值进行比较:
public static Long valueOf(long l) {
final int offset = 128;
if (l >= -128 && l <= 127) {
return LongCache.cache[(int)l + offset];
}
return new Long(l);
}
就导致-[128, 128)之间的值其实取到的是同一地址。而返回以外的Long是new的一个对象,==操作自然是false。
如果要做Long或者Integer的比较,用equals()吧,compareTo()也行。
3.spring IOC
我没研究过spring的原理,我不配做个java程序员。
IOC翻译为控制反转,大概意思就是我们在写代码时,将获得实例(bean)的权利交给spring去做,我们事先将bean的属性设置好,spring初始化时将它放到容器里面,当我们需要的时候就直接从容器里面取就好了,而不用程序内部主动去控制对象(自己写很多的new XXXServiceIml())。DI翻译为依赖注入,理解为IOC的实现,主要体现就是ServiceA依赖ServiceB时,它会先去实例化ServiceB[疑问?是否有先后顺序],实例化A时将B注入到A中(设值注入和引用注入)。