14 Matching Annotations
  1. Aug 2023
    1. 那么,如何让发起请求的时候,使用我们小号的私钥呢?我们先来看一下执行 clone 代码时候,仓库源那个以 git 开头的链接是什么意思:

      给目标服务器配置别名

    1. 该接口描述为xxxFactory是非常合适的,很好的表达了1:N的关系

      这和我手动实现的,自定义顺序的比较器的功能非常类似; 通过范型生成不同类型的比较器;我的那个工具类,也应该叫 CustomOrderComparatorFactory 比较合适

    1. 完整的 @Configuration 与 "精简的" @Bean 模式?

      完整模式与精简模式

  2. Jul 2023
    1. 简单的 value 属性之外,还接受命名的(named)属性

      @Qualifier 可以定义 注解+属性名

    1. 首先需要导入 getCurrentInstance() 方法

      vue 3 获取 this(vue 实例对象) 的方法; 全局方法

    1. 流程中的节点往后传递参数非常简单,只需往控制台输出即可。但须注意,多个控制台输出会合并到一起,因此除了往后传递参数外,其他情况下都不要往控制台打印文本。通常控制台输出会包含换行符,为避免换行符带来干扰,推荐使用 echo -n(bash) 或 sys.stdout.write(python);直接执行 js 时,方法内部的return 即往后传递参数,此时 console.log 输出到控制台并不合法。

      Alfred workflow 脚本传递参数

    1. Getting a Summary for an Attribute of Grouped Results

      summary 可以用来获取平均值、计数等多个结果,不用每次重新获取刘对象

    2. A different application of the downstream collector is to do a secondary groupingBy to the results of the first group by.

      不但可以 groupingBy(BlogPost::getAuthor, groupingBy(BlogPost::getType) 分组之后再分组;还可以 分组之后,再映射 groupingBy(BlogPost::getAuthor, tomap(BlogPost::getType,BlogPost::xxx) 第二个参数可以跟任何 collectors 里面的操作

  3. Jun 2023
    1. 但在多线程的极端情况下,还是会产生缓存数据不一致的情况的。比如上述实例中,CPU-0修改数据,发消息给其他CPU,其他CPU消息队列接收成功并返回。这时CPU-1正忙着处理其他业务,没来得及处理消息队列,而CPU-1处理的业务中恰好又用到了变量a,此时就会造成读取到的a值为旧值。 这种因为CPU缓存优化导致后面的指令无法感知到前面指令的执行结果,看起来就像指令之间的执行顺序错乱了一样,对于这种现象我们俗称“CPU乱序执行”。

      指令乱序的另一种解释; 之前一直认为的是,jvm 编译时优化导致了指令乱序; 此观点认为实际上没有乱序,是因为CPU缓存没来得及更新导致的,看起来像乱序执行 两种观点待后续查证,可能两种都有关

      指令重排跟两个方面都有关系, 编译器的优化 CPU 缓存失效队列的延迟 b站

  4. May 2023