招银电话面

一、为啥要选用mongo, mongo和MySQL的优势在哪?你说mongo查询快,原因是什么。

二、项目中的哪块儿功能用到了redis?为什么要选用redis而不选Memcache. redis的持久化策略。

在项目中使用redis作为缓存的。项目中的短信验证码、登录的token、用户的一些个人信息、以及系统中每个设备的基础信息。这些数据都放到了redis里面。

  1. redis的数据类型要比memcached更加丰富。比如redis中有list,set,zset,string,hash等五种数据类型。memcached中只有string和二进制数据两种数据类型。
  2. redis支持事务,但是redis不支持RollBack. memcached不支持事务。
  3. redis原生支持集群化部署。memcached不支持
  4. redis的命令库非常丰富,支持批量操作、事务、每种类型数据的CURD. memcached只支持CURD和其他很少量的数据。

redis的持久化策略:
redis的持久化策略主要包括两种:

  • RDB策略。 该策略是redis定期或者符合所设定的条件之后将内存中的所有数据以快照的形式写入磁盘。
  • AOF策略。开启AOF策略之后,根据所配置选项的不同有不同的操作。如果所配置选项为always,那么每一条让redis数据变更,就会将数据同步到磁盘上。everySec是每秒同步一次,这样当数据库宕机之后,只会丢失一秒的数据。no,不将数据同步到磁盘,这种情况一般不会用。

虽然AOF持久化非常灵活地提供了多种不同的选项来满足不同应用程序对数据安全的不同要求,但AOF持久化也有缺陷——AOF文件的体积太大。如果出现这种情况可以使用BGREWRITEAOF命令对AOF文件进行压缩。

Redis 4.0 开始支持 RDB 和 AOF 的混合持久化(默认关闭,可以通过配置项 aof-use-rdb-preamble 开启)。

spring bean的生命周期

bean的生命周期简单来说:实例化,属性赋值,初始化,bean销毁
详细来说:

  1. bean 容器找到配置文件中spring bean的定义。然后用Java Reflection api 进行bean实例的创建。
  2. 如果涉及有涉及到一些属性的值,就利用set方法去设置属性值。
  3. 然后spring 检查 这个bean是否实现了相关的aware的接口,如果实现了,就设置相关的依赖。
  4. 然后检查bean是否设置了BeanPostProcessor对象,如果设置了就执postProcessBeforeInitialization()方法。
  5. 然后检查 是否实现了InitializingBean的接口,如果实现了这个接口是执行afterProPertiesSet()方法,
  6. 检查是否配置有自定义的init-method.
  7. 执行beanPostProcessorde的后置处理器。
  8. 使用
  9. 检查是否实现了Disposablebean接口,执行destory方法
    10.检查是否配置了destory-method属性。

接口和抽象类的区别,抽象类

接口和抽象类的区别:
1、定义接口的关键字是interface ,抽象类的关键字是abstract class
2、接口中的方法都是抽象的(1.8之前,18之后也可以有方法的实现),抽象类中可以有方法的实现(即非抽象方法)
3、一个类可以实现多个接口,但只能继承一个抽象类,所以一般来说,可以使用接口实现的尽量使用接口实现。比如Runnable就比Thread使用频率高的多
4、接口和抽象类中都可以定义变量,但是接口中定义的必须是公共的、静态的、Final的,抽象类中的变量跟普通类中的没有区别。
5、抽象类可以包含静态方法,但是接口中不可以!
6、接口中的方法必须是public的,抽象类中的方法可以使public 和 protected的
7、从设计上来说,接口是对一系列行为的抽象,而抽象类是对事物的抽象。
两者相同点:
1.抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
2.抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类还只能是抽象类。同样,一个类实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

如一个类覆写了object类中equals方法 ,没有覆写hashcode方法,这样会出现什么问题?

在使用HashMap或者HashSet等容器是可能会出现插入的问题!
例如hashmap中要使用hashcode的值来进行散列,如果没有覆写hashcode方法,可能会出现两个不同的对象的hashcode()的返回值是相同的,那么在hashmap中进行插入的时候就会出现问题。

为什么要选用netty,netty的优势在哪里?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值