![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识碎片
文章平均质量分 72
WeiXiao_Hyy
这个作者很懒,什么都没留下…
展开
-
JS的this关键字详解
学习JS的this关键字往往难以理解和应用,本文详细解读JS中的this关键字,并结合案例给出相应的解释。PS:整理了后端开发的知识网络,欢迎Star!原创 2024-06-26 21:46:39 · 1052 阅读 · 0 评论 -
零停机部署——特征开关(Feature Toggles)的应用
然而,系统拥有少量长寿命“特征开关”的情况并不常见,这些开关允许生产环境的操作员在系统承受异常高负载时可以优雅降级非重要的系统功能。将决策逻辑点和业务逻辑解耦,需要添加新的功能时只需要添加featureDecision中的方法,在invoiceEmailer中调用featureDecision中的方法。前者通过在运行期间修改开关的值是动态的,而后者切换路由本质上是动态的。如果需要在生产环境中使用更加通用的切换控制机制,最好使用真正的分布式配置系统来构建,并及时清理过时的feature toggle。原创 2024-06-19 12:10:55 · 893 阅读 · 0 评论 -
以操作系统和Java的视角看“中断“
什么是中断?中断可以归结为一种事件处理机制,通过中断发出一个信号, 用来响应硬件设备请求的一种机制。操作系统收到硬件的中断请求,会打断正在执行的进程,然后调用内核中的中断处理程序来响应请求。中断解决了什么样问题?当CPU需要访问外部设备时,必须不断地进行轮询和等待外部设备的状态, 这种轮询过程极大地浪费资源。中断机制有效地解决了CPU轮询和忙等待以检查外部设备状态所带来的性能损耗问题。注意。原创 2024-06-09 10:23:04 · 1167 阅读 · 0 评论 -
你真的懂Java延迟初始化吗?
每个线程至少获取一次锁,可能有多个线程同时尝试使用同一个类,而JVM需要确保类的初始化只被执行一次,在初始化完成之前,其他线程需要等待。本文记录安全初始化的几个方式。getInstance的代码路径很短,因此如果getInstance没有被多个线程频繁调用,那么SafeLazyInitialization上不会存在激烈的竞争,从而能提供令人满意的性能。上次学习了并发知识后,给仓库提交了一个final案例,没想到大佬很快就merge了,还给了我contributor,很开心,欢迎学习和Star!原创 2024-06-06 23:18:08 · 839 阅读 · 0 评论 -
一文带你搞懂大事务的前因后果
运行时间(调用远程事务或接口中需要执行的SQL比较多)比较长,长时间未提交的事务可以称之为大事务。原创 2024-06-01 09:50:22 · 1061 阅读 · 0 评论 -
一文带你搞懂Java-final关键字
上述代码存在并发安全问题,writer和reader同时进行,writer线程进行类的初始化,此时JVM可能会进行指令的重排序,将a,flag等变量的初始化赋值重排序到构造函数之外,导致reader读取的a,flag变量是基础变量的初始值即0和false(指令顺序不一定发生,并且需要特定的硬件和JVM环境)。在构造函数内对一个final修饰的对象的成员域的写入,与随后在构造函数之外把这个被构造的对象的引用赋给一个引用变量,这两个操作是不能被重排序的。编译期常量和非编译期常量。final修饰引用变量。原创 2024-05-29 12:07:46 · 856 阅读 · 0 评论 -
重构——IdGenerator重构分析过程
对于函数返回NULL还是异常,要看获取不到数据是不是正常行为,如果获取主机hostname失败之后会影响后续逻辑的处理,并不是程序期望的,所以是一种异常行为。注释 = 做什么,为什么,怎么做,怎么用,对一些边界条件,特殊情况进行说明,以及对函数输入,输出,异常进行说明。对于命名三,生成的ID是一个随机ID,不是递增有序的,命名为RandomIdGenerator是比较合理的,即使内部生成算法有所改动,不需要改动命名。写单元测试的时候,测试对象是函数定义的功能,而非具体的实现逻辑。如果对于业务能够接受。原创 2024-04-12 00:32:29 · 963 阅读 · 2 评论 -
知识碎片——CR代码的check_list
CR代码往往需要从代码和功能的角度去分析,这段代码优秀与否,以下check_list参考《设计模式之美》的内容。设计模式实战Repo,欢迎Star!原创 2024-04-08 23:59:38 · 277 阅读 · 0 评论 -
知识碎片-docker初始化db,自动导入SQL
的README的时候,希望用户能快速部署繁琐的环境依赖,于是写了docker-compose来方便部署,但希望可以一键初始化db,而不是部署mysql之后再手动导入表结构和测试数据。原创 2024-03-30 11:31:11 · 375 阅读 · 0 评论 -
MQ最终一致性理论与实践
分布式事务无论是2PC&3PC还是TCC,基本都遵守XA协议的思想,但全局事务方案并发性较差;最终一致性方案指的是将最有可能出错的业务以本地事务的方式完成后,采用不断重试的方式(不限于消息系统)来促使同一个分布式事务中的其他关联业务全部完成,不遵从XA协议。原创 2024-02-20 23:04:09 · 1353 阅读 · 0 评论 -
知识碎片-C语言字符指针
pmessage是一个指针,其初值指向一个字符串常量,如果试图修改字符串的内容,结果是没有定义的。// 定义一个数组// 定义一个指针char *p[] 其中p是数组变量,不能使用p++来获取数组的下一个值,而printlines函数中通过值传递,可以改变lineptr的值。原创 2024-02-15 00:14:34 · 178 阅读 · 0 评论 -
知识碎片-SpringBoot统一返回结果和捕获异常
ExceptionHandler(value = BizException.class) 捕获自定义异常。ResponseResultBodyAdvice类。统一结果类ResultResponse。定义新注解ResponseResult。原创 2024-02-14 21:06:20 · 293 阅读 · 0 评论 -
知识碎片-mvn install时不需要mybatis-generator重新生成代码
每一次项目编译的时候,Mybatis-Plus会重新生成代码,导致手动添加的@Mapper和@Data等注解失效。在phase标签修改为deploy阶段或选择不覆盖已经存在的文件。原创 2024-02-14 20:41:51 · 185 阅读 · 0 评论