TO DO

lombook
@Data = https://projectlombok.org/features/Data
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor = https://projectlombok.org/features/constructor

名称 参数 @NonNull 其他说明
@NoArgsConstructor 无参数 无效 主要配合@Data或其他构造方法注解使用
@RequiredArgsConstructor All non-initialized final fields get a parameter, as well as any fields that are marked as @NonNull that aren't initialized where they are declared. 有效 包含在@Data中,构造方法作用域为private
@AllArgsConstructor 所有参数 有效

Jackson
现象:xAxis属性在Json序列化时被解析为xaxis
原因:
jackson默认的字段属性发现规则如下:所有被public修饰的成员变量->所有被public修饰的getter->所有被public修饰的setter。
entity中成员变量一般都是private的,xAxis的getter/setter方法为getXAxis/setXAxis,不符合驼峰命名
解决办法一:
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE)
修改字段发现规则 - fieldVisibility为ANY,getterVisibility为NONE
https://www.jianshu.com/p/855654b3b68c
https://www.cnblogs.com/hbbbs/articles/8405719.html
解决办法二:
@JsonProperty(value = "xAxis")
这个方法功能更强大,可以修改为完全不同名称

@JsonInclude(JsonInclude.Include.NON_NULL)
实体类与Json互转的时候 属性值为null的不参与序列化
https://www.baeldung.com/jackson-ignore-null-fields

@Accessors(chain = true)
使用chain属性,setter方法返回当前对象,和@Builder注解作用不同。
https://www.jianshu.com/p/784732369d46

@JsonSerialize

类上
@Entity
@Table(name = "ting_analysis_cluster_ip")
@Table(name = "ting_analysis_ip_util_month_30",
indexes = {@Index(name = "idx_memory_util_max", columnList = "memory_util_max"),
@Index(name = "idx_memory_util_avg", columnList = "memory_util_avg")})

字段上
@Column(nullable = false,length = 255)

// 在LIKE方法中,如果root.get方法获取的属性类型不是String,则需要进行类型转换。
Predicate ipLike = criteriaBuilder.like(root.get("ip").as(String.class), pattern);
Predicate ipIn = root.get("ip").in(collect);

Optional.map()
Optional.flatMap()

Collectors.joining()
Collectors.groupingBy()
Collectors.toMap()
Collectors.summingDouble()
Collectors.collectingAndThen()

.sorted(Collator.getInstance(Locale.CHINA))
.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.filter(Objects::nonNull)
.reduce()
.forEach()
.peek()

Comparator.comparing()
Comparator.comparing(Employee::getAge).thenComparing(Employee::getName)
Map.Entry.comparingByValue()

SimpleDateFormat/DateTimeFormatter

CollectionUtils.isEmpty()
StringUtils.isEmpty()

temporal 当时的;
instant adj. 立即的;紧急的;紧迫的 n. 瞬间;立即;片刻

@EnableWebSecurity
@PostAuthorize

模式1:
MySQL + 离线计算

模式2:
纯ClickHouse + 缓存

模式1.5:
ClickHouse + 离线计算(Python计算)

可能存在的模式1.7:
ClickHouse + 表引擎、物化视图

数据维度 -- 静态/动态
数据质量 -- 数据完整度
数据治理 -- 可用性(完整度、覆盖度,包含时间/空间、准确性)

第一天:上午开会, 短会 + 前后端会议

整个称为ArrayList 泛型类型。
整个ArrayList 称为 参数化的类型。

ArrayList称为原始类型。
ArrayList中的E称为 类型变量 或 类型参数。
ArrayList中的Integer称为 类型参数的实例 或 实际类型参数。

5、阿里巴巴Java开发手册 - “强制”部分
6、专利部分
7、jmeter工作
8、Spring Boot Actuator 健康检查 审计 统计 监控

功劳 苦劳 敬业 正常 无作为
贡献 创新 思考 核心

信用卡 8.572 x 5.403

倍思100W 2C2A 210g:
8.549 x 5.439 x 3.028

倍思120W 2C1A 217.4g:
9.398 x 5.533 x 3.046

努比亚120W 2C1A 净重232g:
8.685 x 5.635 x 3.136

1.15.2 go版本

Java for Selenium

posted @ 2022-04-27 16:33  又是火星人  阅读(186)  评论(0编辑  收藏  举报