Silentdoer

导航

2024年1月3日 #

似乎有点理解指令集和架构的区别了

摘要: 架构就是造房子的图纸,而指令集就是造房子的材料【玩过俄罗斯方块可能就比较好理解什么是指令集了】 比如指令集里只有:L型的砖,I型的砖,田字形的砖等; 而架构就是基于上面的砖(指令集)设计好的房子的造法,即最底层是用什么砖,往上是用什么砖等等; 不过还是有疑问,如果真的是这么理解的话,那图纸一模一样, 阅读全文

posted @ 2024-01-03 14:54 Silentdoer 阅读(18) 评论(0) 推荐(0) 编辑

2024年1月2日 #

dev、st、uat分支存在多个特性一起开发测试时的冲突解决方式

摘要: 1.最大的问题是f1和f2会同时开发,但是f1和f2却可能分两次上线,所以开发自测环境(dev)可能同时存在f1和f2的代码; 因此做这样的规定就能避免公共开发自测环境(dev)的代码流入不上线的内容到生产里; dev -> kf_dev // ERROR,kf_dev是开发自己的分支; uat - 阅读全文

posted @ 2024-01-02 11:46 Silentdoer 阅读(38) 评论(0) 推荐(0) 编辑

2023年12月21日 #

观察者模式和发布订阅模式的区别

摘要: 观察者模式只有两个对象,一个是观察者(Listener)和被观察者; 观察者通过实现被被观察者提供的接口,add到被观察者的Listener列表里; 当被观察者内部产生相关事件时,通过其Listener列表来通知观察者; 而发布定义模式则多了一个中介(Broker,比如Kafka),即分为了生产者、 阅读全文

posted @ 2023-12-21 11:52 Silentdoer 阅读(10) 评论(0) 推荐(0) 编辑

2023年12月20日 #

having在SQL里的作用以及和where的区别

摘要: 1.where和having都是过滤数据的作用,且都是根据某个“字段”来过滤数据,区别在于: where是根据from的表里的行数据来过滤,比如where aa > 1表示查出from的表里aa字段>1的所有行; where可以不和group by一起用; 而having是对已经分组(聚合)的组进行 阅读全文

posted @ 2023-12-20 14:42 Silentdoer 阅读(166) 评论(0) 推荐(0) 编辑

2023年12月19日 #

代理模式理解

摘要: 代理模式其实称为网关模式就很好理解,即代理就是那个网关,它只是会额外的做一些操作(比如日志记录,拦截等),然后原封不动的将参赛调用被代理对象, 然后再将被代理对象(各方法)执行后拿到的结果返回给调用放; 即中间多了一个代理层(网关); 网关需要配置被代理服务的地址,同样的代理对象需要配置被代理对象; 阅读全文

posted @ 2023-12-19 18:49 Silentdoer 阅读(11) 评论(0) 推荐(0) 编辑

编程设计原则

摘要: java设计原则,主要是这几点: 1.单一职责,即一个方法只做一个功能,一个类尽量只负责一类功能; 2.接口隔离原则,即不是共存的功能应该用多个接口声明(比如open和close可以是放一个接口,因为不能说使用了资源不释放;但是吃饭和跑步是可以分来两个接口的) 3.依赖倒置原则,其实就是要求类不应该 阅读全文

posted @ 2023-12-19 17:04 Silentdoer 阅读(5) 评论(0) 推荐(0) 编辑

2023年12月12日 #

select for update在springboot里实现分布式锁

摘要: // mapper,注意,这里的参数最好就是主键或者唯一键,否则产生的是表锁,script可以省略 @Select("<script> select* from foo where id = #{id} for update</script>") Foo selectForUpdateById(@P 阅读全文

posted @ 2023-12-12 17:47 Silentdoer 阅读(224) 评论(0) 推荐(0) 编辑

2023年12月10日 #

接口实现多态,本质上是接口方法实现的多态

摘要: 比如接口: interface Fly { void name(); void kkk(); } Fly f = subObj; // 其实多态发生在这里,f会找到其真实类型,即subObj的真实类型 // 然后去找真实类型里是否实现了void name()这个方法,没有找到则再找subObject 阅读全文

posted @ 2023-12-10 18:18 Silentdoer 阅读(5) 评论(0) 推荐(0) 编辑

2023年12月6日 #

类型的子类其实应该叫子集更合适

摘要: 而子集是针对类型而言的,比如A extends B,那么A是B的子集; 注意,这里是A类型是B类型的子集,而不是A类型对象是B类型对象的子集; 而A类型是B类型的子集,表示 B类型 比 A类型 能承载的对象 更广; 所以int是long类型的子集,因为long类型 比 int类型 能承载的对象 更广 阅读全文

posted @ 2023-12-06 22:45 Silentdoer 阅读(5) 评论(0) 推荐(0) 编辑

RedisTemplate使用

摘要: RedisTemplate底层要用jedis,另外的lettuce存在bug; 而且jedis支持只配置集群的部分节点(可以不包含master节点)自动同步下载其他节点; 然后就是redisTemplate的increment经过测试是没有问题的并发执行确实是原子的; 而且redis的key过期后是 阅读全文

posted @ 2023-12-06 09:25 Silentdoer 阅读(13) 评论(0) 推荐(0) 编辑