ARTS 第 10 周

正则匹配、Java 新垃圾收集器:ZGC、Zuul 的一个坑。

Algorithm

Problem: Regular Expression Matching

毫无思路 -_-||

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public boolean isMatch(String s, String p) {
if (p.isEmpty()) {
return s.isEmpty();
}

boolean first_match = (!s.isEmpty() &&
(p.charAt(0) == s.charAt(0) || p.charAt(0) == '.'));

if (p.length() >= 2 && p.charAt(1) == '*') {

// isMatch(s, p.substring(2)) 表示前面元素没有匹配
// first_match && isMatch(s.substring(1), p) 表示前面元素匹配多个
return (isMatch(s, p.substring(2))) || (first_match && isMatch(s.substring(1), p));
}
return first_match && isMatch(s.substring(1), p.substring(1));
}
}

Review

Java 新垃圾收集器:ZGC 译文

ZGC 是针对 TB 级别的堆,具有更低的暂停时间(<10 ms),对整体应用性能影响更小(吞吐量<15%)而设计的垃圾收集器。

ZGC 使用了两个新的技术:着色指针(coloured pointers)和 读障碍(load barriers)。

着色指针是一种将信息存储在指针(或使用Java术语引用)中的技术。

读障碍是每当应用程序线程从堆加载引用时运行的代码片段。用于在 GC 对象重定位之前应用程序尝试加载它们时,保证返回正确的引入地址。

Tip

这周遇到一个关于 Zuul 的坑,有一个服务是按驼峰命名的,通过 Zuul 访问时,发现 404。我们使用的是 Zuul 默认的规则即 /{serverId}/XX,是不是不区分大小写啊?

后面 debug 发现,从 discovery 中获取到的全部 services 都是全部小写的 -_-||

所以就是服务名是驼峰命名都会被转为全部小写。

Share

这周的一件大事,昆山反杀案,判定属于正当防卫,不负刑事责任。

(完)