JAVA 五月 28, 2023

用 IDEA 写更整洁的 Java 代码

文章字数 5.1k 阅读约需 5 mins.

新版本 IDEA 支持设置保存时的动作,在 Preferences 下的 Tools | Actions on Save 中:

支持如下动作:

查看全文

JAVA 十月 15, 2022

黑客松云原生赛道初赛程序设计分享

文章字数 15k 阅读约需 13 mins.

2Core / 4GB 的总资源限制内,在容器中运行一个基于文本日志文件的统计分析程序,统计发表评论最多的前10位用户,并按顺序返回用户名、该用户的评论次数、该用户不重复的评论数量以及最近发表评论的时间

  1. 按照评论次数由多到少进行排序
  2. 当用户评论次数相同时,将内容不重复的评论数量较多的用户排在前面
  3. 当“用户评论次数”与“不重复的评论次数”均相同时,以“最近发表评论的时间”排序,内容较新的用户排在前面

正式比赛的数据量级为1000万(可能会有零头,但不低于1000万,不超过1001万),数据文...

查看全文

JAVA 十月 09, 2022

MapStruct - Java bean 映射,简单的方法!

文章字数 14k 阅读约需 13 mins.

应用程序通常需要在不同的对象模型(例如实体和 DTO)之间进行映射,如:在前后台传输过程中,持久层定义的实体类经常需要映射到其它的对象模型进行相互转换。

MapStruct 是一个代码生成器,在不同的对象模型(例如 实体 和 DTO)之间进行映射,它基于约定优于配置的方法,极大地简化了 Java bean 类型之间的映射实现。

MapStruct 是一个 Java 注释处理器,用于生成类型安全、高性能和无依赖关系的 bean 映射代码。

与其他映射框架相比,MapStruct 在编译时生成 bean...

查看全文

JAVA 九月 11, 2022

【转】Java 线程状态之 TIMED_WAITING

文章字数 9.6k 阅读约需 9 mins.

原文地址:https://xiaogd.net/md/java-线程状态之-timed_waiting

目录

  • 定义
  • timed_waiting 的场景
  • 虚假唤醒(spurious wakeup)
  • sleep 时的线程状态
  • BLOCKED 和 WAITING 状态的区别和联系
  • 总结

上一篇章中我们谈论了 WAITING 状态,在这一篇章里,我们来看剩余的最后的一个状态:TIMED_WAITING(限时等待)。

一个正在限时等待另一个线程执行一个动作的线程处于这一状态。

A thread ...

查看全文

JAVA 九月 04, 2022

【转】Java 线程状态之 WAITING

文章字数 11k 阅读约需 10 mins.

原文地址:https://xiaogd.net/md/java-线程状态之-wating

上一篇里我们讲了一个重要状态:BLOCKED,在这一篇章里,我们来看另一个重要的状态:WAITING(等待)。

一个正在无限期等待另一个线程执行一个特别的动作的线程处于这一状态。

A thread that is waiting indefinitely for another thread to perform a particular action is in this state.

然而这里并...

查看全文

JAVA 八月 28, 2022

【转】Java 线程状态之 BLOCKED

文章字数 6.9k 阅读约需 6 mins.

原文地址:https://xiaogd.net/md/java-线程状态之-blocked

目录

  • BLOCKED 状态的定义
  • 进入(enter)同步块时阻塞
  • wait 之后重进入(reenter)同步块时阻塞
  • 总结

上一篇中,我们强调了 BLOCKED 状态跟 I/O 的阻塞是不同的,它不是一般意义上的阻塞,而是特指被 synchronized 块阻塞,即是跟线程同步有关的一个状态。

前面已经说过 BLOCKED(阻塞) 的简单定义为:

一个正在阻塞等待一个监视器锁的线程处于这一状态。(...

查看全文

JAVA 八月 21, 2022

【转】Java 线程状态之 RUNNABLE

文章字数 9k 阅读约需 8 mins.

原文地址:https://xiaogd.net/md/java-线程状态之-runnable

目录

  • 什么是 RUNNABLE?
  • 与传统的 ready 状态的区别
  • 与传统的 running 状态的区别
  • 当 I/O 阻塞时
  • 如何看待 RUNNABLE 状态?

上一篇我们粗略谈到了 Java 的 6 种线程状态,并对其中较为简单的 NEW 和 TERMINATED 做了分析,现在我们具体来看下 State.RUNNABLE 状态,即所谓的可运行状态。(以下简称 runnable)

再次强调,这...

查看全文

JAVA 八月 07, 2022

解决Mybatis-Plus更新对象时字段更新为空值的问题

文章字数 8k 阅读约需 7 mins.

mybatis-plus(简称:mp)执行更新操作,将某些字段值置为 空 或者 null,持久层执行后,需要更新为空值的字段仍然保持原本的值。
显然和我们预期的结果不一致。

我们可以参照以下三种方案处理 mp 执行更新操作空值的情况。

针对实体类中字段的注解,在 mybatis-plus 的 @TableField
有 FieldStrategy-字段验证策略 和 FieldFill-自动填充 两种方式:

FieldStrategy 字段策略的3个使用场景:

  • insertStrategy insert...
查看全文

JAVA 七月 24, 2022

Java 线程状态介绍

文章字数 11k 阅读约需 10 mins.

JVM 中的线程,有六种状态,定义在 java.lang.Thread.State 枚举类中,从 1.5 版本开始,至目前最新的 1718,基本没有变化。

先来看一下 Java Doc 中对这六种状态的描述:

注意下面那句话:

A thread can be in only one state at a given point in time. These states are virtual machine states which do not reflect any operating...

查看全文

JAVA 五月 15, 2022

使用 Alibaba Druid 进行 SQL 翻译

文章字数 12k 阅读约需 11 mins.

Alibaba Druid 是阿里云计算平台 DataWorks 团队出品,为监控而生的数据库连接池。

Apache 旗下也有一个 Apache Druid,是一个高性能的实时分析数据库。

本文提到的 Druid,指 Alibaba Druid

Druid 其实是一个 JDBC 组件库,不仅包含数据库连接池组件,还有 SQL Parser 等组件,被大量业务和技术产品使用或集成,从 GitHub 的 Start 数量(25.5k),和 Used by 数量(206k)可见一斑。

网上关于 ...

查看全文
加载更多
0%