备战秋招007(20230711)


前言

提示:这里为每天自己的学习内容心情总结;

Learn By Doing,Now or Never,Writing is organized thinking.

目前的想法是,根据 Java GuideJavaLearning小林coding进行第一轮复习,之后根据 TigerCS-Notes 进行最后的重点复习。

今天是周二,TO DO LIST:

  • 需要将财务报销弄完;
  • 复习完Redis;

提示:以下是本篇文章正文内容

一、今天学习了什么?

  • 复习完Redis;

二、关于问题的答案

1.Redis

Q:为什么会造成缓存和数据库的不一致性问题呢?

主要还是因为并发操作,操作之间的顺序无法固定。

先更新缓存后更新数据库,先更新数据库后更新缓存,这两种操作都会造成数据的不一致性问题。

Q:你采用的策略?

先更新数据库,后删除缓存。

Q:为什么?

更新数据库比删除缓存更耗费时间,如果先删除缓存后更新数据库,会更容易出现数据不一致的情况。

比如,线程A需要将数据1修改成2,删除缓存后,进行数据库更新业务。此时,线程B查询数据,重构缓存,但是数据库业务还未完成,于是在缓存中数据为1,之后数据库的数据为2,发生了数据不一致性。

Q:如果删除缓存失败怎么办?

删除缓存失败,还会导致数据不一致性的问题。

需要给数据加上过期时间,保底策略,其次可以引入重试机制,将删除缓存的操作放入消息队列中。

还可以订阅MySQL 的 binlog,再去操作缓存。

2.SE

Q:异常?

结构体系图,Throwable、error、exception、checked exception、unchecked exception;

Q:反射?

反射是框架里面常用的一个技术,比如 SpringBoot/Spring、Mybatis等,通过反射可以获取到类中的方法和属性,然后进行操作。

优点就是:编写代码简单。

缺点:安全性会受到影响,在使用反射的时候泛型安全检查不起作用。

Q:Class对象的四种获取方式?

  • 类名.class;
  • class.forname;
  • 实例对象.getClass;
  • 类加载器+类名全路径;

Q:代理模式?

代理模式,就是使用一个代理对象去增强原本类的功能,用于扩展被代理对象并且不破坏被代理对象。

代理模式分为:静态/动态代理。

Q:静态代理?

现在基本上不用静态代理了,因为编写代码很麻烦,容易造成代码之间的耦合性高,使用步骤:

  • 创建一个接口及其实现类;
  • 编写另外一个实现代理类也实现这个接口;
  • 在代理类中进行方法增强。

Q:动态代理?

目前使用的都是动态代理,又可以分为 JDK 动态代理 和 CGLIB 动态代理,模式不一样。

CGLIB 是基于一个开源的库,可以基于继承类来实现动态代理,但是 JDK 动态代理必须基于接口, JDK 动态代理是基于 JDK ,效率更高。

Spring AOP 是基于这两个应用去实现的,区别在于 使用 SpringAOP 的时候,是基于接口还是继承类的。

Q:JDK 动态代理?

两个重要的类:InvocationHnadlerProxy,使用步骤:

  • 编写接口极其实现类;
  • 自己实现 InvocationHandler 注入目标代理对象,然后编写业务逻辑;
  • 利用 Proxy.newProxyInstance() 方法获取代理对象,执行方法;

Q:CGLIB 动态代理?

两个重要的类:MethodInteceptorEnhancer,使用的时候需要引入依赖,因为这是一个开源的项目。

Q:泛型?

泛型是只有在编写代码或者编译期间才能确定的类型,目的是为了类型安全,并且使用泛型不需要进行强制转换。

Q:泛型擦除?

字节码进入 JVM 运行时,会擦出泛型参数。泛型只有在编译期间有用。


总结

提示:这里对文章进行总结:

进度还是要抓紧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值