1,773 Matching Annotations
  1. Dec 2022
  2. Oct 2022
  3. Sep 2022
    1. Now let’s try something more difficult. Suppose we need to group all posts by title and count duplicating titles. This is done with the .groupBy() clause. We’ll also want to order the titles by resulting occurrence count.

      fetchCount

  4. Aug 2022
    1. 使用 rebase 的常见场景是在推送到远程进行合并之前执行 rebase,一般这样做的目的是为了确保提交历史的整洁。
    2. rebase 操作的目标基底分支 Master
    1. 注意:该注解@FeignClient中的value属性指定了服务提供者在nacos注册中心的服务名。
    2. value属性指定了服务提供者在nacos注册中心的服务名。
    1. 对于单个Java应用,我们如何限制其中某个方法methodA()被调用的并发数不能超过100,如果超过100,超出的请求就直接返回null或抛异常
    1. 每次消息过来都要拿着订单号+业务场景这样的唯一标识(比如天猫双十一活动)去流水表查,看看有没有这条流水,有就直接return不要走下面的流程了,没有就执行后面的逻辑。

      如果有事务,则可能不适用。可以用mysql唯一索引

    1. 了解了雪花算法的主键 ID 组成后不难发现,这是一种严重依赖于服务器时间的算法,而依赖服务器时间的就会遇到一个棘手的问题:时钟回拨。
    1. 不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提交之前,第一个库宕机,则只有第二个库数据提交,且无法回滚。
    1. 新增了一个refresh范围的scope,同样用了一种独特的方式改变了Bean的管理方式,使得其可以通过外部化配置(.properties)的刷新,在应用不需要重启的情况下热加载新的外部化配置的值。
    1. @Import

      解决不在componentScan扫描范围下的bean的扫描问题

    1. 数据库防止穿库。 Google Bigtable,HBase 和 Cassandra 以及 Postgresql 使用BloomFilter来减少不存在的行或列的磁盘查找。避免代价高昂的磁盘查找会大大提高数据库查询操作的性能。
    1. 首先分配一块内存空间做 bit 数组,数组的 bit 位初始值全部设为 0。 加入元素时,采用 k 个相互独立的 Hash 函数计算,然后将元素 Hash 映射的 K 个位置全部设置为 1。 检测 key 是否存在,仍然用这 k 个 Hash 函数计算出 k 个位置,如果位置全部为 1,则表明 key 存在,否则不存在。
    1. fst是什么?FST fast-serialization 是重新实现的 Java 快速对象序列化的开发包。序列化速度更快(2-10倍)、体积更小,而且兼容 JDK 原生的序列化。要求 JDK 1.7 支持。
    1. 如果希望 Value 以 JSON 保存并带上类型信息,更简单的方式是,直接使用 RedisSerializer.json() 快捷方法来获取序列化器。
    2. 它内部使用的 GenericJackson2JsonRedisSerializer 直接设置了把类型作为属性保存到 Value 中
    3. 没有用户态到核心态的拷贝
    4. 也就是数据从磁盘经过总线直接发送到目标文件,无需经过内存和 CPU 进行数据中转:
    5. 使用 try 来包裹 Stream 即可
    1. 当远程调用让李四增加金额成功了,由于网络问题远程调用并没有返回,此时本地事务提交失败就回滚了张三减少金额的操作,此时张三和李四的数据就不一致了
    1. 攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。
    2. CSRF的名气似乎
    1. 通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序

    1. 一串随机数的密码
    2. 使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致
    3. 网站地址,加密公钥,以及证书的颁发机构等信息

      和证书一起,把公钥发送过来

    1. JVM加载class文件读取时候使用Unicode编码方式正确读取class文件,那么原来定义的String s="汉字";在内存中的表现形式是Unicode编码
    1. 排查,log4j2配置 -> java vm option file encoding -> idea vm option file encoding 配置

    1. JAVA18中强制使用UTF-8编码(1-4字节变长编码,中文字符都在三字节区),原先两字节的char能显示GBK编码(两字节定长编码)的汉字,但现在不行了,望教程更新(Char的演示里有中文字符“中”)。

      Java对待文件或者外部字节的字符编码是utf-8了,但内部数据的处理依旧是utf-16

    1. Unicode字符的码位,需要1个或者2个16位长的码元来表示,因此这是一个变长表示
    1. 方法重载: 方法名 + 参数列表 -> 实际调用哪一个方法

      返回类型并不能决定一个方法调用

    2. Java会同时根据方法名和参数列表来决定所要调用的方法,这叫做方法重载(method overloading)
    1. 由于最高位计算结果为1,因此,加法结果变成了一个负数
    1. Unicode 是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式[1]对外发表

      utf-8是unicode字符集的编码方式之一

    1. 静态作用域的优点在于,在程序执行之前就可以确定变量解析的结果,这样更易于人阅读和分析代码
    1. dispatchException,再交给 processDispatchResult() 进行处理。
    2. 而所有被 @ControllerAdvice 注解修饰的异常处理器,都会在 ExceptionHandlerExceptionResolver 实例化的时候自动扫描并装载在其类成员变量 exceptionHandlerAdviceCache 中
    1. OrderBService 执行了 OrderAService 执行了

      B的优先级高于A,所以B先执行

    1. 应用耦合:多应用间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败; 2、异步处理:多应用对消息队列中同一消息进行处理,应用间并发处理消息,相比串行处理,减少处理时间; 3、限流削峰:广泛应用于秒杀或抢购活动中,避免流量过大导致应用系统挂掉的情况;

      定时任务

    1. 查询sys.schema_table_lock_waits这张表,我们就可以直接找出造成阻塞的process id,把这个连接用kill 命令断开即可
    1. 业务上禁用 这种写法,RR的隔离级别会锁A表
    2. 尽量将业务逻辑写在业务代码中,让数据库只做“读写数据”的事情。因此,这类方法的应用还是比较广泛的
    3. 先取前三行,构造成一个堆
    4. 依次到内存临时表中取出word值
    1. 其实MySQL是确认了的。只是在这个语句里面,MySQL认为读出来的值,只有一个确定的 (id=1), 而要写的是(a=3),只从这两个信息是看不出来“不需要修改”的
    2. 表示的就是使用了覆盖索引,性能上会快很多
    3. 遍历排序结果,取前1000行,并按照id的值回到原表中取出city、name和age三个字段返回给客户端。
    1. 改帐均须动笔。纵为不变之帐,仍需覆写之
    2. insert … on duplicate语句,确保了在事务内部,执行了这个SQL语句后,就强行占住了这个行锁

      这样update这行,在当前事务commit之后(即释放行锁),其他事务才能update这行

    3. 让“like”表里的数据保证user_id < liker_id
    4. binlog没有能力恢复“数据页”
    5. 历史日志没法保留
    1. 调用 remove 方法删除元素,往往会遇到 ConcurrentModificationException 异常,原因是什么,修复方式又是什么呢

      遍历时,iterable会检测modCount

    2. 先通过循环获取到那个节点的 Node,然后再执行插入操作

      add末尾就没什么问题