DEV Community

小猫先生
小猫先生

Posted on • Edited on

1

Java 小工具

JMH

Another tutorial: JMH - Java Microbenchmark Harness see: Java Samples
JMH 是一个由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发的 Micro Benchmark Framework 。何谓 Micro Benchmark 呢?简单地说就是在 method 层面上的 benchmark,精度可以精确到微秒级。可以看出 JMH 主要使用在当你已经找出了热点函数,而需要对热点函数进行进一步的优化时,就可以使用 JMH 对优化的效果进行定量的分析。

比较典型的使用场景还有:

  • 想定量地知道某个函数需要执行多长时间,以及执行时间和输入 n 的相关性
  • 一个函数有两种不同实现(例如实现 A 使用了 FixedThreadPool,实现 B 使用了 ForkJoinPool),不知道哪种实现性能更好

logback 配置解析

  • 如何引入日志?
  • 日志输出格式以及输出方式如何配置?
  • 代码中如何使用?

Validation

  • @NotNull //不允许为空
  • @Size //长度或大小范围

    @Size(min = 1, max = 20)
    private String name;

  • @NotNull(groups = ValidationService.Save.class) // 保存时不允许为空,更新时允许为空 ,表示不更新该字段

  • @Pattern

    @Pattern(regexp = "^\\s*\\w+(?:\\.{0,1}[\\w-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*\\.[a-zA-Z]+\\s*$")
    private String email;

  • @Min(18) //最小值

  • @Max //最大值

    @Max(100) private int age;

  • @Past //必须为一个过去的时间

    @Past private Date loginDate;

  • @Future //必须为一个未来的时间

    @Future private Date expiryDate;

Transactional(来源:Spring @Transactional 原理及使用

  • 事务传播行为 事务传播行为
  • 事务隔离级别 事务隔离级别
    • 脏读 : 一个事务读取到另一事务未提交的更新数据
    • 不可重复读 : 在同一事务中, 多次读取同一数据返回的结果有所不同, 换句话说, 后续读取可以读到另一事务已提交的更新数据。相反,” 可重复读” 在同一事务中多次读取数据时,能够保证所读数据一样,也就是后续读取不能读到另一事务已提交的更新数据
    • 幻读 : 一个事务读到另一个事务已提交的 insert 数据
  • 属性 属性

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay